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

时间:2010-07-27 06:24:19

标签: javascript jquery jersey

当鼠标因滚动(通过滚轮或键盘滚动)开始悬停在元素上时,它不会在它悬停的元素上触发鼠标悬停事件(OSX上的Chrome 6)。滚动时触发鼠标悬停事件以获得正确元素的优雅方法是什么?

3 个答案:

答案 0 :(得分:3)

老实说,这将是一种痛苦。你必须

  1. 确定应该获得鼠标悬停处理程序的每个元素的大小和位置。
  2. 向窗口添加滚动侦听器。
  3. 在处理程序中,获取鼠标光标位置和pageOffset。
  4. 找出光标所在的元素。
  5. 手动调用实际的鼠标悬停处理程序
  6. (找出光标剩下的元素,如果你也想要一些鼠标输出行为)
  7. 如果元素是动态的,您可能需要重新计算元素的位置和大小。 (移动1.低于3.)

    虽然这应该适用于块级元素,但我完全不知道内联元素的解决方案。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

在现代网络中,使用document.elementsFromPoint更简单:

  1. 将滚动侦听器添加到窗口。
  2. 在处理程序中,调用document.elementsFromPoint
  3. 手动为这些元素调用实际的mouseover处理程序。
  4. 为不再悬停的元素手动调用实际的mouseleave处理程序。