这是一个奇怪的,我很震惊,我从来没有注意到它。它的工作原理如下,如果你的鼠标静止并且div以编程方式在鼠标下方移动,则不会在chrome / safari中触发mouseover事件 - 同样适用于mouseout。当然,如果在鼠标移动到鼠标下方后稍微移动鼠标,它将按预期工作。
我创建了demo on jsFiddle。只需让div在你的鼠标下振荡,在firefox中运行良好,而不是在chrome或safari中运行 - 尚未在ie中进行测试。
我倾向于这个解决方案......基本上使用这个来滚动我自己的mouseenter和mouseleave事件:
if (mouseX > divLeft && mouseX < divRight &&
mouseY > divTop && mouseY < divBottom){
// mouse is inside div
}
我说mouseenter并离开,因为这种方法没有冒泡
我想知道是否有其他人对此有过想法...我觉得有一个简单的方法可以解决它,但到目前为止谷歌还没有做出任何改变。