Как сделать этот JQuery .animation () действительно анимированным. - PullRequest
0 голосов
/ 10 февраля 2011

Я не могу заставить это выпадающее меню анимировать медленно или вообще что-либо.

$(document).ready(function () {
    $('#menu > li').hover(function () { $('ul:first', this).show(); },
                           function () { $('ul:first', this).hide(); }
    );

    $('#menu li li').hover(function () {
        $('ul:first', this).each(function () {
            var p = $(this).parent();
            $(this).animate('top', p.position().top)
                   .animate('left', p.position().left + p.width())
                   .show();
        });},
        function () { $('ul:first', this).hide(); }
    );
});

1 Ответ

2 голосов
/ 10 февраля 2011

jQuery's animate() ожидает объект / «карту» свойств CSS.Второй параметр определяет продолжительность анимации в мс.

Ваш пример будет выглядеть примерно так (анимация свойств top и left в 2000 мс):

$(this)
    .show()
    .stop() // see below
    .animate({
        'top': p.position().top,
        'left': p.position().left + p.width()
    }, 2000);

Если вы звоните animate из обработчика hover, вы можете захотеть посмотреть на stop().

Совет: документы - это простой способ понять такие вещи.

...