【问题标题】:MouseOver MouseOut issue in Safari/ChromeSafari/Chrome 中的 MouseOver MouseOut 问题
【发布时间】:2011-06-16 03:34:20
【问题描述】:

这很奇怪,我很震惊我以前从未注意到它。它的工作原理是这样的,如果您的鼠标静止并且 div 以编程方式在您的鼠标下方移动,则不会在 Chrome/Safari 中触发 mouseover 事件 - mouseout 也是如此。当然,如果在 div 移到鼠标下方后稍微移动鼠标,它会按预期工作。

我创建了一个demo on jsFiddle。让 div 在你的鼠标下摆动,在 Firefox 中可以正常工作,而不是在 Chrome 或 Safari 中 - 尚未在 IE 中测试。

我倾向于这个解决方案......基本上使用这个来滚动我自己的 mouseentermouseleave 事件:

if (mouseX > divLeft && mouseX < divRight &&
    mouseY > divTop && mouseY < divBottom){
    // mouse is inside div
}

我说mouseenter然后离开,因为这种方法不会冒泡

我想知道是否有其他人对此有想法...我觉得有一个简单的方法可以解决它,但到目前为止谷歌还没有发现任何东西。

【问题讨论】:

  • 刚刚检查 - IE 7 在鼠标静止时不会触发mouseovermouseout
  • +1,非常有趣。通过在 div 移动时检查鼠标的位置,可以使用 javascript 触发事件。
  • 很酷,谢谢,我刚刚启动 VirtualBox 进行测试
  • 是的 JCOC611 这绝对是可能的 我把你需要这样做的基本条件放在帖子中......我可能会诉诸于此,只是想知道是否有更好的方法。
  • +1 这真的很有趣。我猜它Webkit没有看到鼠标离开对象,而是对象离开了鼠标。我们必须在苏维埃俄罗斯。

标签: javascript google-chrome safari dom-events


【解决方案1】:

https://bugs.webkit.org/show_bug.cgi?id=4117

您可能会觉得这个错误很有趣。

【讨论】:

  • 非常酷。我想这只是一个错误......我会稍等一下,看看是否有其他解决方案,但我很确定我会将此标记为正确答案。
  • 看起来除了我在原始问题中提到的技术之外,没有其他方法可以解决这个问题 - 我刚刚使用了它,它可以很好地满足我的需要。
猜你喜欢
  • 1970-01-01
  • 2012-04-24
  • 2021-12-20
  • 2010-10-25
  • 1970-01-01
  • 1970-01-01
  • 2010-12-29
  • 1970-01-01
  • 2011-03-03
相关资源
最近更新 更多