如何使这个JQuery .animation()实际上是动画的。

时间:2011-02-10 06:18:42

标签: jquery drop-down-menu jquery-animate

我无法让这个下拉菜单动画缓慢甚至任何东西。

$(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 个答案:

答案 0 :(得分:2)

jQuery的animate()期望CSS属性的对象/“地图”。第二个参数以ms为单位定义动画的持续时间。

您的示例看起来像这样( - 在2000ms内设置topleft属性的动画效果:

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

如果您从animate处理程序中呼叫hover,您可能也希望stop()位于{{1}}。

提示:a look是一种简单的方法来解决这个问题。