我是一名正在学习和工作于JavaScript和SVG领域的新手。
我的情况如下:
我有一个包含SVG的div。
<div id "O_div">
<svg>
<line x1= "0" x2 = "0" y1 ="0" y2 ="0">
</line>
<svg>
</div>
现在我想知道鼠标相对于我的 div 的位置,所以我写了以下代码。
odiv = document.querySelector('#O_div');
XOffset = $(Odiv).position().left;
YOffset = $(Odiv).position().top;
// And on my mouse move event
$('#O_div').mousemove(function(event) {
var mouseX = event.clientX - XOffset;
var mouseY = event.clientY - YOffset;
// Here I am setting my line x and y coordinate equal mouseX and mouseY
//So that line moves according to mouse move movement.
});
它正常运行。 但是,当我使用query resizable添加调整大小功能到我的div时,问题就出现了。为了调整大小我的svg,我添加了一个viewBox选项。现在我的svg看起来像这样。
<svg viewBox="0 0 450 154" preserveAspectRatio="xMinYMin meet">
</svg>
但现在我的鼠标坐标不正常,而且我的线离鼠标有点远,当我增加div大小时,它距离鼠标更远。 请问有没有人可以指导我如何计算偏移位置,当我在svg中使用视口选项时。 谢谢,任何帮助和指导将不胜感激。