我有一个覆盖动画 div 的菜单。div 在悬停时动画不透明度。问题是,菜单 z-indexed 在 div 上,li 正在中断 div 悬停,导致 mouseleave 事件并将 div 触发为 opacity:1。我已经为菜单 li 编写了一个中断,如下所示,但没有任何效果。
var ovver=false;
$("#nav li").hover(function () {
ovver=true;
}, function () {
ovver=false;
});
$('#hero div').hover(function() {
if (!ovver) {
$('#hero div').stop().animate({'opacity':0},{duration:650, easing:'easeInOutSine'});
}
}, function() {
if (!ovver) {
$('#hero div').stop().animate({'opacity':1},{duration:650, easing:'easeInOutSine'});
}
});
我不确定为什么该变量不起作用,但是将鼠标悬停在 li 上仍然会触发 opacity:1 动画。我究竟做错了什么??!!!
编辑:已解决。出于某种原因,#hero div 上的第二个悬停事件始终在第一个悬停事件之前执行。我不知道为什么。我在 if 语句之前的第二个悬停事件中添加了一个 setTimeout,它就像一个魅力。
如果有人能建议为什么第二个悬停事件仍然首先触发,无论 DOM 结构、Jquery 顺序还是我能想到的其他任何东西,我都会感兴趣。否则,我将在“WTF”下归档,并记住它以备下次使用。
感谢所有的投入!