我在这里可以看到HSL空间中CSS4颜色关键字的分布的SVG可视化:https : //meyerweb.com/eric/css/colors/hsl-dist.html
我最近添加了通过鼠标滚轮缩放和通过鼠标敲击和拖动来平移的功能。我能够从屏幕空间中的点转换为SVG使用的坐标空间matrixTransform,.getScreenCTM()以及.inverse()由于示例代码我在网上找到,但我怎么拖动转换过程中鼠标移动?现在,我只是将viewBox坐标从移X和Y值event,这意味着在放大时图像拖动比鼠标移动快。
举例来说,假设我放大了图像并拖动以平移,并且鼠标向左或向下拉动了一下。 event.movementX返回-37和event.movementY返回6。如何确定SVG坐标等于多少,以便viewBox正确移动坐标?
(注意:我知道有一些用于此类事情的库,但是我故意编写香草JS代码以了解有关SVG和JS的更多信息。因此,请不要发布“大声笑,请仅使用库X ”,就这样吧。谢谢!)
编辑添加:我被要求张贴代码。发布整个JS似乎太长了,但这是在mousemove事件上触发的函数:
function dragger(event) {
var target = document.getElementById('color-wheel');
var coords = parseViewBox(target);
coords.x -= event.movementX;
coords.y -= event.movementY;
changeViewBox(target,coords);
}
如果需要更多,请在链接页面上查看源代码;所有JS都在页面顶部。除了仅包含可视化的所有HSL值和颜色名称的文件之外,没有任何外部内容。
江户川乱折腾
相关分类