我目前有一个带有其他元素的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为container
的div的位置。
到目前为止,我的代码如下:
function onMousemove(event) {
x = event.offsetX;
y = event.offsetY;
};
var elem = document.getElementById("container");
elem.addEventListener("mousemove", onMousemove, false);
如果带有id为container
的div没有子元素,这样做就可以正常工作。当
容器
具有子元素时,它获取相对于子元素而不是父元素的鼠标坐标。
我的意思是,如果鼠标相对于父元素处于x: 51,y: 51
的位置,则使用上面给出的html,它实际上会返回相对于子元素的x: 1,y: 1
。
我该如何实现我想要的效果,不要使用库。
编辑
tymeJV已经很好地解释了上面发生的事情。