我有一个带有一组li
's 的菜单,当悬停在上面时,会为容器的高度设置动画,然后显示相关的 child .subnav
。
我遇到的问题有 2 倍。
当我将鼠标悬停在
li
's quick上时,容器的动画会减慢,因为它从该点再次开始动画。我想能够说“只在悬停在任何's上时设置一次li
动画”,然后在悬停在容器或子导航之外时将其返回到原始位置。当
.subnav
内容显示并且我将鼠标悬停在另一个触发器 li 上时,动画似乎试图再次在容器上运行,因此意味着应该在之后发生的任何操作都有延迟。
我尝试过使用但不成功,我也尝试过使用unbind()
但我似乎无法获得正确的逻辑。bind()
:animated
这是我的代码:
var navHeight = $('#primary-nav').height();
$('#primary-nav-list li').hover( function() {
var elem = $(this);
if ($(this).is('#roc-noir')){ var subnavHeight = 173; }
else { var subnavHeight = 235; }
$('#primary-nav').stop(true,false).animate({height:subnavHeight}, function(){
$('#primary-nav-list li').removeClass('active');
$(this).addClass('open');
$(elem).addClass('active');
$('#primary-nav-list li').not(this).find('.subnav').fadeOut('fast');
$(elem).find('.subnav').fadeIn('fast');
});
}, function(){
$('#primary-nav').removeClass('open');
$('#primary-nav').stop(true,false).animate({height:navHeight}, function(){
$('#primary-nav-list li').removeClass('active');
$('#primary-nav-list li').not(this).find('.subnav').hide();
});
});
任何帮助,将不胜感激。