更好的实现摇动动画的方法?

时间:2012-10-21 16:48:01

标签: javascript jquery

我正在尝试使用jQuery实现“摇动动画”。我们的想法是,你可以制作一个元素震动来引起人们的注意。以下是我提出的建议:

    function DrawAttention(item, count)
    {
        $(item).animate({top: '+=5'}, 50,
            function(){
                $(item).animate({top: '-=10'}, 100,
                    function(){
                       $(item).animate({top: '+=5'}, 50,
                            function(){
                                if(count>0)
                                {
                                    DrawAttention(item,count-1);
                                }
                            }); 
                    });
            });

    }

我认为这有点冗长,并且想知道是否有人能够看到更优雅的方式来实现我想要的目标。

小提琴here

2 个答案:

答案 0 :(得分:7)

function DrawAttention(item, count)
{
    $(item)
        .animate({top: '+=5'}, 50)
        .animate({top: '-=10'}, 100)
        .animate({top: '+=5'}, 50, function(){
            if(count > 0){
              DrawAttention(item,count-1);
            }
        });
}

答案 1 :(得分:0)

据我所知,jQuery Ui(jqueryui.com)对此有影响。尝试这个将是另一种选择。

如果您想自己动手,我会使用指数函数(如2 ^ -x)来计算抖动偏移。