我有几个动画元素。如果你快速在子菜单上来回,就会有一个队列,在最坏的情况下,功能似乎已经腐败。我已经尝试过stop()
,delay()
,:animated
。
你建议怎么做才能实现:)?
jQuery('.submenu').hover(
function(){
jQuery(this).find('.ico').delay(100).animate({
height: 24
}, 'fast', function() {
jQuery(this).parents('.submenu').find('ul').animate({
height: 'toggle'
}, 'slow', function() {
});
});
},
function(){
jQuery(this).find('ul').delay(100).animate({
height: 'toggle'
}, 'fast', function() {
jQuery(this).parent().find('a.submenuItem .ico').animate({
height: 18
}, 'fast', function() {
});
});
});
HTML
<li class="submenu"><a href="" class="submenuItem">About<span class="ico">more</span></a>
<ul>
<li><a href="#">Corporate</a></li>
<li><a href="#">Facts</a></li>
<li><a href="#">Press</a></li>
<li><a href="#">Franchising</a></li>
<li><a href="#">Sponsoring</a></li>
<li><a href="#">Contact</a></li>
</ul>
</li>
答案 0 :(得分:1)
您是否尝试过.clearQueue()方法?
答案 1 :(得分:1)
这个问题从未真正得到解决。所以..同时我使用了一些额外的脚本作为插件,这有帮助。动画现在感觉好多了,似乎没有时间卡住。额外的脚本是hoverIntent:http://cherne.net/brian/resources/jquery.hoverIntent.html
答案 2 :(得分:0)
JQuery Debouncer可以做到这一切:
https://github.com/diaspora/jquery-debounce
如上所述,您也可以根据.clearQueue()编写自己的解决方案。