滚动时不会触发鼠标hover/鼠标中心

我有一个花哨的Apple鼠标,可以检测手指动作,如“滑动”和“滚动”。

将光标固定在屏幕上,但是用我的手指向下滚动页面,光标(虽然固定)自然地移动到不同的元素上,因为元素正在自行移动。

我的问题是,当这样做时,当鼠标光标直接在它们上方时,不会调用适当的mouseover / mouseenter回调。

我怎么解决这个问题?

我使用的大多数浏览器在页面滚动时不会触发鼠标事件。 您可以尝试侦听onscroll事件并使用document.elementFromPoint确定onscroll事件触发时鼠标光标下方移动了哪些元素。

Jquery的mousemove方法在这里是一个很好的解决方案,因为当你滚动鼠标滚动到一个元素时它会被触发,即使鼠标保持静态。

只要包含某种标志/状态检查,您甚至可以在mousemove上触发 mouseenter事件,以确保您的mouseenter代码不会在mousemove上重复执行。

我不认为你可以……没有一个在计时器上运行的function来检查鼠标对元素的位置,但是对性能的影响至少可以说是天文数字。 可能应该向浏览器制造商提交错误报告并检查其他浏览器以查看行为是否被复制 – 我猜它会因为不认为任何浏览器会在鼠标未被物理移动时触发mouseover / mouseenter事件。