jquery - 浏览器在动画/移动元素上未触发鼠标悬停/鼠标输入

标签 jquery animation mouseover jquery-events mouseenter

如果您的元素具有移动动画,则除非用户移动鼠标,否则不会触发 mouseovermouseenter 事件。要演示,请使用 jQuery 尝试下面的代码块。

如果您将鼠标放在移动的 div 前面,这样当 div 经过时您就不会移动鼠标,那么 mouseover 不会被触发, block 也不会停止。

在 Firefox 中,无需手动将鼠标移动到 div 上,即可触发 mouseover 事件,但前提是您至少移动过一次鼠标。

我的问题是,是否有解决方法,以便在鼠标光标下移动的元素仍会触发其 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;">&#160</div>

我知道这个例子是人为的,但它只是为了演示这个问题。

最佳答案

这是一个浏览器错误。

唯一的解决方法是在 documentmousemove 处理程序中跟踪全局鼠标坐标,然后在动画期间检查元素是否覆盖了这些坐标。

关于jquery - 浏览器在动画/移动元素上未触发鼠标悬停/鼠标输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3963803/

相关文章:

jquery - 防止父元素上的 CSS 动画应用于子元素

jQuery 脚本似乎没有动画

jquery - 如何为动态附加的输入文本框添加 jquery 验证

javascript - 转换Javascript Image Rotator播放Youtube视频

javascript - 删除变量值中的选择器标准

ios - UIButton 随动画显示和消失

jquery - 图像过滤和鼠标悬停时显示文本

带有隐藏内容的 jQuery 悬停

javascript - 鼠标悬停图像卡在循环中

javascript - 如何在表单字段输入中生成简短的唯一代码?