Jquery,用一个简单的动画制作一个循环

时间:2010-03-02 01:50:59

标签: jquery animation settimeout

我正试图替换一部flash电影。

动画非常简单,背景图片向左滑动10秒..同时产品以他的名字显示。

我能够使用jquery重新创建动画..它的工作完美。但只是一次! T_T

有谁知道如何让它循环?

这是代码

function first() {
    $(".img1").animate({left: "-214"}, 10000);
    $(".img2").hide();
    // i hide everything        
};

function second() { 
    $(".img2").fadeIn("slow");
    $(".img1").fadeOut("slow");
    $(".img2").animate({left: "-214"}, 10000);
    // other div animations.. fades in.. slides.. etc.
};

计时功能是:

$(function() {  
    setTimeout("first()",0);
    setTimeout("second()",10000);
    setTimeout("third()",20000);
    setTimeout("fourth()",30000);
    setTimeout("fifth()",40000);        
});

我尝试清除setTimeout ..显然没有成功..所以如果你们有任何线索我怎么能用这些功能(第一,第二,第三......等等)进行无限循环我...全是耳朵。

谢谢!

3 个答案:

答案 0 :(得分:2)

试试这个:

...
function doAnimation() {
    setTimeout("first()",0);
    setTimeout("second()",10000);
    setTimeout("third()",20000);
    setTimeout("fourth()",30000);
    setTimeout("fifth()",40000);  
}

$(document).ready() {
    setInterval("doAnimation()", 5000);
});

请参阅Javascript timing events

答案 1 :(得分:0)

让每个函数使用回调参数触发下一个函数!

答案 2 :(得分:0)

将动画代码包装在一个函数中,并让它在结束时为自己设置一个计时器。类似的东西:

function doAnimation() {
    setTimeout("first()",0);
    setTimeout("second()",10000);
    setTimeout("third()",20000);
    setTimeout("fourth()",30000);
    setTimeout("fifth()",40000);
    setTimeout("doAnimation()", 50000);
}