繁体   English   中英

Javascript:获取鼠标相对于父元素的位置

[英]Javascript: Get mouse position relative to parent element

有没有办法让鼠标相对于它的父元素的位置?

假设我有一个结构:

<div id="parent">
    <span class="dot"></span>
</div>

当我将鼠标移到span元素上时,我需要获取它相对于其父元素( <div id="parent"> )的位置。 PageX/ClientX 给我相对于页面/客户区域的位置,所以它对我不起作用。

从事件的clientXclientY中的鼠标位置减去您可以通过getBoundingClientRect()获得的父元素的视口相对位置以获得相对位置。

例如:

element.addEventListener("mousedown", function (e) {
    let bounds = parent.getBoundingClientRect();
    let x = e.clientX - bounds.left;
    let y = e.clientY - bounds.top;

    console.log(x, y);
});

其中element是您接收事件的内部元素,而parent是您想要的坐标参考。

jquery offset()方法处理父定位,所以

function onsomemouseevent(e) {
    var x = e.pageX - $(e.target).offset().left;
}

是普通浏览器抽象的jquery。

试试offsetParent属性。

尝试这个:

positionX = document.getElementById('childId').offsetParent.offsetLeft;
positionY = document.getElementById('childId').offsetParent.offsetLeft;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM