【发布时间】:2012-05-05 03:12:44
【问题描述】:
我在 SVG 文档中遇到了关于鼠标光标位置的问题。我想设计一个电位器,在拖动时跟随光标,在 HTML 页面中使用 JavaScript。
我尝试了evt.clientX/Y 和evt.screenX/Y,但由于我的 SVG 是在 autoscale 中,我的 SVG 内的坐标是不同的。几天来我一直在寻找答案,但找不到任何解决方案(无论是实时了解我的 SVG 缩放因子还是在 SVG 坐标系中具有鼠标定位功能)。
旋转将遵循一个简单的规则:
if (evt.screenX < xc)
ang = Math.atan((evt.screenY - yc) / (evt.screenX - xc)) * 360/(2*Math.PI) - 90;
if (evt.screenX > xc)
ang = Math.atan((evt.screenY - yc) / (evt.screenX - xc)) * 360/(2*Math.PI) + 90;
以(xc;yc) 作为旋转中心,并将所有evt.screenX/Y 替换为我的SVG 中鼠标的坐标。
【问题讨论】:
-
您必须使用变换矩阵才能获得正确的坐标。一个 jsfiddle 会很有帮助。
标签: javascript svg