使用jQuery管理复杂的动画

时间:2011-08-05 10:16:17

标签: jquery animation queue

我需要在我的网站上完成相当复杂的动画,其中元素上下滑动,CSS属性被操纵等等。我想知道如何以优雅的方式做到这一点。

操作触发onclick,另一次点击应恢复所有内容,直到该网站再次处于其原始状态。

我不想做的是写一个像

这样的函数
$(somebutton).onclick(function() {
        if($(this).hasClass("clicked") {
             $(this).slideDown();
             $('#that').show();
             $('#button').css("position","absolute");
             // more things going on
          } else {
             // revert all things gone on
             $(this).slideUp();
             $('#that').hide();
             $('#button').css("position","static");
          }

});

这意味着我不想两次写出所有这些语句,甚至更糟糕的是,大多数动画在70%中是相同的。我不想一遍又一遍地写这个。

我所想到的就像一个动画队列,我可以操作,弹出和移动,最重要的还原。我找到了jQuery的queue() - Function,但有一点我卡住了:

  • 一旦自定义队列出列,它就不再存在了,这意味着我可以为元素设置一次动画,但我不能说例如

    myQueue.queue('动画&#39)反向();

在myQueue被解雇之后

,因为此时它是空的。

这个冗长的解释不只是针对这个简单的队列问题。这也是一个邀请,为更好的方法提出建议。

1 个答案:

答案 0 :(得分:0)

我认为没有开箱即用的解决方案。动画不知道它们的反转操作,因此恢复它们是一项非常重要的任务。也就是说自己编写这样一个系统并不是一件容易的事情。毕竟每个动画都很简单,反转操作应该很容易生成。