JQuery Animate (несколько элементов) очереди - PullRequest
0 голосов
/ 28 октября 2011

У меня есть несколько анимированных элементов. Если вы быстро переходите назад и вперед по подменю, появляется очередь, и в худшем случае кажется, что функциональность повреждена. Я уже пробовал 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 ]

1 голос
/ 21 ноября 2011

Этот вопрос никогда не решается.Итак ... В то же время я использовал дополнительный скрипт в качестве плагина, и это помогло.Анимация сейчас чувствует себя намного лучше, и кажется, что у нее нет времени, чтобы застрять.Дополнительный скрипт hoverIntent: http://cherne.net/brian/resources/jquery.hoverIntent.html

1 голос
/ 28 октября 2011

Вы пробовали метод .clearQueue ()?

документация clearQueue ()

0 голосов
/ 21 ноября 2011

JQuery Debouncer делает все это:

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

Вы также можете написать собственное решение на основе .clearQueue (), как указано выше.

...