Javascript:获取相对于父元素的鼠标位置 [英] Javascript: Get mouse position relative to parent element

查看:640
本文介绍了Javascript:获取相对于父元素的鼠标位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Is there any way to get mouse position relative to it's parent element?

假设我有一个结构:

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

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

When I bring my mouse over span element I need to get its position relative to its parent element (<div id="parent">). PageX/ClientX give me position relative to page/client area, so it's not working for me.

推荐答案

减去位置父元素(offsetLeft; offsetTop)从鼠标位置(pageX; pageY)获取相对位置。如果您有多个偏移级别,请记住将offsetParent考虑在内。

Subtract the position of the parent element (offsetLeft; offsetTop) from the mouse position (pageX; pageY) to get relative position. Remember to take offsetParent into account if you have multiple levels of offsets.

例如:

element.addEventListener("mousedown", function (e) {
  let x = e.pageX - parent.offsetLeft;
  let y = e.pageY - parent.offsetTop;

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

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

Where element is your inner element receiving the event, and parent is your desired reference for the coordinates.

这篇关于Javascript:获取相对于父元素的鼠标位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆