如果你有一个元素有一个动画来移动它,除非用户移动鼠标,否则不会触发mouseover
and事件。mouseenter
为了演示使用 jQuery 尝试下面的代码块。
如果您将鼠标放在移动的 div 前面,那么当 div 经过时您不会移动鼠标,mouseover
则不会触发并且块不会停止。
在 Firefox 中,mouseover
无需手动将鼠标移动到 div 上即可触发该事件,但前提是您至少移动了一次鼠标。
我的问题是有一种解决方法,所以在鼠标光标下移动的元素仍然会mouseover
触发其事件?
<script>
$(function() {
var move = 10,
left = 0,
width = 100;
var stop = setInterval(function() {
left += move;
$('#mydiv').css('left', left);
if (left < 0 || (left + width > parseInt($(window).width())))
move = -1 * move;
}, 10);
$('#mydiv').mouseover(function() { clearInterval(stop); });
});
</script>
<div id="mydiv" style="width: 100px; height: 100px; position: absolute; top: 0; left: 0; background-color: Black;"> </div>
我知道这个例子是人为的,但这只是为了证明这个问题。