我目前正在学习和工作在 JavaScript 和 SVG 方面,我是新手。这是我的场景
我有一个 div,里面有一个 SVG。
<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.
});
它工作正常。但是,当我使用查询 resizable 向我的 div 添加调整大小功能时,问题就出现了。要调整我的 svg 的大小,我在其中添加了一个 viewBox 选项。现在我的 svg 看起来像这样
<svg viewBox="0 0 450 154" preserveAspectRatio="xMinYMin meet">
</svg>
但是现在我的鼠标坐标不能正常工作,我的线离我的鼠标有点远,当我增加 div 大小时它离我的鼠标更远。当我的svg中有一个viewbox选项时,任何人都可以指导我如何计算我的偏移位置。
感谢任何帮助和指导。