当用户滚动页面时光标从一个 div 移动到另一个 div 时,悬停方法是否有替代方法或技巧可以触发函数。
我已经在当前帖子 div 的悬停事件上使用了一些 javascript (jQuery) 让它工作。但是,我注意到悬停事件仅在鼠标实际移动时触发。如果使用键盘(页面)向上/向下滚动页面,则不会触发。
(我可以注意到,例如,soup.io 已经找到了一种让它工作的方法,但我找不到他们是如何做到的)
当用户滚动页面时光标从一个 div 移动到另一个 div 时,悬停方法是否有替代方法或技巧可以触发函数。
我已经在当前帖子 div 的悬停事件上使用了一些 javascript (jQuery) 让它工作。但是,我注意到悬停事件仅在鼠标实际移动时触发。如果使用键盘(页面)向上/向下滚动页面,则不会触发。
(我可以注意到,例如,soup.io 已经找到了一种让它工作的方法,但我找不到他们是如何做到的)
不幸的是,这很复杂。您不能再依赖该onMouseOver
事件 - 滚动页面时触发的唯一事件是onScroll
. 涉及的步骤:
快速(不可靠)原型: http: //pastie.org/507589
你有样品吗?我猜页面上元素的布局阻止了鼠标悬停事件。我下面的简单示例按照您的描述工作。当光标位于页面顶部并使用键盘导航时,将触发mouseover事件。
<html>
<body>
<script>
function log(text)
{
document.getElementById('logger').value += text + "\n";
}
</script>
<div id="div1" style="background: yellow; height: 100px;margin-top: 100px" onmouseover="log('mouseover div1');">
div1
</div>
<textarea id="logger" cols="60" rows="12" style="float:right;"></textarea>
<div id="div2" style="background: red; height: 1000px" onmouseover="log('mouseover div2');">
div2
</div>
</body>
</html>
您正在寻找鼠标滚轮事件。
document.getElementById('myDiv').onmousewheel = function() {
alert('You win!');
alert('Seriously! It's just like that');
};
我只在 Chrome (webkit) 中测试过这个