javascript - 是否可以获取仅相对于您的元素的鼠标位置

标签 javascript html mouseevent mousewheel mouse-position

如果给定元素中有多个子元素,我很难获取相对于元素附加事件的鼠标位置。

domElement.addEventListener('wheel', event => {
 event.offsetX //x relative to target element
 event.offsetY //y relative to target element
}

如果我的鼠标悬停在子元素上,它会给出子元素的位置。我知道 event.pageX 或 event.clientX 但它为我提供了相对于窗口/视口(viewport)的鼠标位置。

const element = document.getElementById("wrapper");
const output = document.getElementById("output");
element.addEventListener("wheel", event =>{
output.innerHTML = `offsetX: ${event.offsetX}, offsetY: ${event.offsetY}`;
});
#wrapper{
  height:300px;
  width:500px;
  background:#ccc;
  position:absolute;
  left:400px;
  top:20px;
}

#child{
  position:relative;
  height:120px;
  width:130px;
  left:50px;
  top:120px;
  background: green;
}
<div id="wrapper">
  <div id="child">
  </div>
</div>

<div id="output"></div>

最佳答案

您可以使用这个:https://developer.mozilla.org/es/docs/Web/API/Element/getBoundingClientRect 获取元素的位置,然后就是一个简单的操作。

关于javascript - 是否可以获取仅相对于您的元素的鼠标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57640626/

相关文章:

javascript - 为什么 vue 在 Laravel 中的行为与独立 vue 应用程序不同?

javascript - Angularjs 允许字母字符和特殊字符,但不允许数字

html - html中使用 Font Awesome 的单个图标声音播放器

javascript - 我的 Hello World AngularJS 应用程序出了什么问题?

javascript - Django CreateView 未在提交表单时创建

javascript - 确定 MVC 5 应用程序中 JavaScript 文件的依赖关系?

javascript - 如何阻止超链接执行滑动切换事件

javascript - mousemove 事件是否每帧触发一次?

javascript - 使用 Javascript 鼠标事件返回鼠标在 HTML5 Canvas 上单击的坐标?

javascript - 如何使用 touchmove 使 mousemove 事件适用于触摸屏?