将鼠标事件传递到被遮挡元素。

10

在JavaScript中,有没有一种方法可以使事件传播到被另一个元素遮挡的元素上?因为我有一个带有position: absolute属性的元素,它会遮挡不是它的父级元素的其他元素,但我希望点击、鼠标移动和鼠标移出事件能够穿过这个元素。解决方案可以针对Mozilla Firefox特定,因为我将在Firefox Add-On中使用它。

2个回答

18
也许你正在寻找的是css属性 pointer-events:none;。例如,Twitter首页就使用它,因此即使在淡出图形覆盖时,你也可以单击“趋势话题”中的文本。

1
你可以使用getElementsByTagName("*")来获取页面中的所有元素。使用一个查找世界位置的函数,你可以得到一个元素相对于页面左上角的位置。现在,你可以使用offsetWidth、offsetHeight和鼠标位置[浏览器特定,哈哈]来检查光标是否悬停在你的元素上。
如果光标悬停在你的元素上,就触发事件。
上述函数应该附加到window.onmousedown/onmouseup/onmousemove/whatever。

是的,我希望有更简单、更快速的方法。也许在<canvas>前面放一个不可见的<img>,并附上一个图像映射会更好。嗯。 - panzi
你如何在浏览器中触发原始事件?例如,使用jQuery只能触发jQuery处理程序...而不能触发原始DOM事件。 - arty

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接