elementsFromPoint不包含mouseover元素

时间:2018-09-04 17:07:56

标签: javascript html css

我想在鼠标指针坐标处获取元素列表。 document.elementsFromPoint似乎可以解决问题,但是我注意到即使我传递了事件的clientXclientY,mouseover事件的目标也未总是包含在列表中。

我想了解为什么会这样。手动将事件目标添加到列表是最好的解决方法吗?

要重现:围绕“更多内容”以圆周运动移动鼠标:

document.body.addEventListener('mouseover', function(e) {
    let elems = document.elementsFromPoint(e.clientX, e.clientY);
    if(elems.indexOf(e.target) === -1) {
      console.log(elems); 
      console.log(e.target); 
      console.log(e.clientX, e.clientY);
    }
    
});
span {
margin-top: 2px;
float: bottom;
}
<div>
  More
  <span>stuff</span>
</div>
<div>
  More
  <span>stuff</span>
</div>
<div>
  More
  <span>stuff</span>
</div>
<div>
  More
  <span>stuff</span>
</div>

0 个答案:

没有答案