我目前有一个 div,其中包含其他元素。
类似于下面的东西;
<div id="container" style="position: relative; width: 500px; height: 500px;">
<div style="position: absolute; left: 50px; top: 50px;"></div>
<div style="position: absolute; left: 100px; top: 100px;"></div>
</div>
我正在尝试使用 id 获取鼠标相对于 div 的位置container
。
到目前为止,我有这个;
function onMousemove(event) {
x = event.offsetX;
y = event.offsetY;
};
var elem = document.getElementById("container");
elem.addEventListener("mousemove", onMousemove, false);
如果具有 id 的 divcontainer
没有子级,这可以正常工作。当container
div 有子元素时,它会获取相对于子元素而不是父元素的鼠标坐标。
我的意思是,如果鼠标位于x: 51, y: 51
相对于父 div 的位置,它实际上会x: 1, y: 1
使用上面给出的 html 相对于子 div 返回。
我怎样才能实现我想要的,请不要图书馆。
编辑
tymeJV 对上面发生的事情做了一个 jsfiddle。