jquery动画然后恢复正常

时间:2012-04-24 23:41:31

标签: jquery jquery-ui

考虑div“dMyDiv”

我注意到在jquery中我可以动画这样:

$( "#dMyDiv").animate({
         backgroundColor: "#aa0000"
  }, 1000 );

为我的div带来红色的彩色背景。但是在说了10秒之后还有办法吗? 回到我的div的正常白色背景?我看到有一个回调函数,但我不确定是否可以启动动画,一旦动画完成后回到我的常规背景(动画之前)。我应该这样做:

 $( "#dMyDiv").animate({
             backgroundColor: "#aa0000"
          }, 1000, function() {
           $(#dMyDiv").animate({ backgroundColor: "#fff" }, 1000);
          };
);

在红色动画之后的含义,只是再次动画为白色?

3 个答案:

答案 0 :(得分:7)

你是对的。第三个参数是动画完成后执行的函数。

$("#dMyDiv").stop().animate({backgroundColor:'#aa0000'},1000,function(){
    $(this).animate({backgroundColor:'#fff'},1000);
});

答案 1 :(得分:3)

您可以使用setTimeout:

$("#dMyDiv").stop(true, true).animate({

    backgroundColor: "#aa0000"

}, 1000, function() {

   setTimeout(function() {       

       $(#dMyDiv").animate({ 

           backgroundColor: "#fff" 

       }, 1000);

   }, 10 * 1000);

});

答案 2 :(得分:0)

我能够和这些人一起做到:

http://jsfiddle.net/aN7qz/

以下是代码:

$( "#myDiv").animate({ 
             backgroundColor: "#aa0000" 
          },
             1000, 
             function() { 
                 $("#myDiv").animate({ backgroundColor: "#fff" }, 1000);
             }
                     );