循环jquery动画

时间:2013-07-18 13:58:33

标签: jquery setinterval

我有这个代码,它运行一次然后停止。我希望它每十秒运行一次,我知道setinterval会循环代码,但由于某种原因它无法运行?

<script>
   $(document).ready(setInterval(function(){
       $("#club_color1 a").animate({color: '#000000'}, 1000);
       $("#club_color2 a").animate({color: '#000000'}, 1000);
       $("#club_color1 a").animate({color: '#FFFFFF'}, 1000);
       $("#club_color2 a").animate({color: '#FFFFFF'}, 1000);
   }),10000);
</script>

4 个答案:

答案 0 :(得分:6)

我认为最后一行需要

},10000));

答案 1 :(得分:0)

使用回叫功能。所以它一个接一个地执行。

$(document).ready(setInterval(function(){
   $("#club_color1 a").animate({color: '#000000'}, 1000,function() {
         $("#club_color2 a").animate({color: '#000000'}, 1000,function() {
               $("#club_color1 a").animate({color: '#FFFFFF'}, 1000,function() { 
                   $("#club_color2 a").animate({color: '#FFFFFF'}, 1000);
               });
         });
   });
},1000);

答案 2 :(得分:0)

我注意到一件事:

您忘记了$.ready()的匿名功能,所以这样做:

<script>
   $(document).ready(function()
       setInterval(function(){
           $("#club_color1 a").animate({color: '#000000'}, 1000);
           $("#club_color2 a").animate({color: '#000000'}, 1000);
           $("#club_color1 a").animate({color: '#FFFFFF'}, 1000);
           $("#club_color2 a").animate({color: '#FFFFFF'}, 1000);
       },10000);
   });
</script>

你可以递归:

$(document.ready(function() { 
   animate(); 
});

function animate() {
   $("#club_color1 a").animate({color: '#000000'}, 1000, animate);
   $("#club_color2 a").animate({color: '#000000'}, 1000, animate);
   $("#club_color1 a").animate({color: '#FFFFFF'}, 1000, animate);
   $("#club_color2 a").animate({color: '#FFFFFF'}, 1000, animate);
}

只需在函数中添加这些动画,然后将该函数的名称添加为每个$.animate()的最后一个参数,然后在文档准备就绪时调用animate()函数。

答案 3 :(得分:0)

最简单的是:

function doMyAnimations()
{
    $("#club_color1 a").animate({color: '#000000'}, 1000);
    $("#club_color2 a").animate({color: '#000000'}, 1000);
    $("#club_color1 a").animate({color: '#FFFFFF'}, 1000);
    $("#club_color2 a").animate({color: '#FFFFFF'}, 1000);
    setTimeout(doMyAnimations,10000);
}

然后在身体负荷上调用一次:

setTimeout(doMyAnimations,10000);