如果您有一个具有移动动画的元素,mouseover
and mouseenter
除非用户移动鼠标,否则不会触发事件。为了演示,请使用 jQuery 尝试下面的代码块。
如果您将鼠标放在移动的 div 前面,这样当 div 经过时您就不会移动鼠标mouseover
不会被解雇,并且块不会停止。
在火狐浏览器中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>
我知道这个例子是人为的,但这只是为了证明这个问题。
这是一个浏览器错误。
唯一的解决方法是跟踪全局鼠标坐标document
-level mousemove
处理程序,然后在动画期间检查元素是否覆盖了这些坐标。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)