如何使页面滚动触发鼠标悬停事件?

问题描述 投票:7回答:2

[当鼠标由于滚动而开始悬停在元素上时(通过滚轮或键盘滚动),它不会在其悬停的元素上触发鼠标悬停事件(OSX上为Chrome 6)。在滚动时触发正确元素的mouseover事件的一种优雅方法是什么?

javascript jquery jersey
2个回答
4
投票

老实说,这会很痛苦。您必须

  1. 确定应该获得鼠标悬停处理程序的每个元素的大小和位置。
  2. 将滚动侦听器添加到窗口。
  3. 在处理程序中,获取鼠标光标的位置和pageOffset。
  4. 找出光标所在的元素。
  5. 手动调用实际的鼠标悬停处理程序
  6. ((如果您也想要某些mouseout行为,请找出光标剩余的元素)

如果元素是动态的,则可能需要重新计算元素的位置和大小。 (将1移动到3下。)

虽然这对于块级元素应该可以正常工作,但是我绝对不知道内联元素的解决方案。


0
投票

[尝试滚动myDiv.style.opacity = 1+Math.random();之类的技巧;)

© www.soinside.com 2019 - 2024. All rights reserved.