onmousemove使用z-index返回元素的不同值

时间:2017-04-10 23:19:29

标签: javascript z-index heatmap onmousemove

我正在尝试显示用户在屏幕上移动鼠标的位置(使用Chrome扩展程序)。我正在使用一个名为heatmap.js的库来处理这个问题。

更具体地说,我以此为例 - https://www.patrick-wied.at/static/heatmapjs/example-mousemove-heatmap.html

我的问题是,我希望显示此热图的网站正在大量使用z-index。这个问题是,当您将z-index以外的auto鼠标移到onmousemove时,z-index返回的值不是人们所期望的 - 而不是鼠标的值在屏幕上,返回相对于屏幕左上角的其他一些值。

您可以在此处查看此操作 - https://jsfiddle.net/rj870o6c/

为了抵消这种情况,我尝试在整个页面的顶部添加一个覆盖div,9999pointer-events: none;。这有效,但后来我失去了与下面页面交互的能力,当然,我不能使用z-index,因为我需要捕获鼠标的值。

您可以在此处看到此操作(尝试点击黄色框中的链接,它将无效) - https://jsfiddle.net/ktwbbpbn/

当将鼠标悬停在具有{{1}}的元素上时,有没有办法获得鼠标指针的实际值?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

事实证明问题在于我使用layerXlayerY来抓取鼠标的位置。这对我的用例来说是一个坏主意,因为它只返回相对于当前层(https://developer.mozilla.org/en/docs/Web/API/UIEvent/layerX)的数据。答案是使用pageXpageY代替。有关详细信息,请参阅this

对于任何可能发现这个有用的人来说,这里有一个JSFiddle,一切都按预期工作 - https://jsfiddle.net/h1us1syr/