我想在鼠标指针坐标处获取元素列表。 document.elementsFromPoint
似乎可以解决问题,但是我注意到即使我传递了事件的clientX
和clientY
,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>