jquery animate(几个元素)队列

时间:2011-10-28 14:53:34

标签: jquery hover jquery-animate

我有几个动画元素。如果你快速在子菜单上来回,就会有一个队列,在最坏的情况下,功能似乎已经腐败。我已经尝试过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>

3 个答案:

答案 0 :(得分:1)

您是否尝试过.clearQueue()方法?

clearQueue() documentation

答案 1 :(得分:1)

这个问题从未真正得到解决。所以..同时我使用了一些额外的脚本作为插件,这有帮助。动画现在感觉好多了,似乎没有时间卡住。额外的脚本是hoverIntent:http://cherne.net/brian/resources/jquery.hoverIntent.html

答案 2 :(得分:0)

JQuery Debouncer可以做到这一切:

https://github.com/diaspora/jquery-debounce

如上所述,您也可以根据.clearQueue()编写自己的解决方案。