Jquery, сделайте цикл с простой анимацией - PullRequest
4 голосов
/ 02 марта 2010

Я пытаюсь заменить флэш-фильм.

анимация действительно простая, фоновое изображение сдвигается влево на 10 секунд ... между тем продукт показывается с его именем.

Я смог воссоздать анимацию с помощью jquery ... она работает идеально ... НО ТОЛЬКО ОДИН РАЗ! Т_Т

Кто-нибудь знает, как я могу сделать это в цикле?

это код

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 ]

2 голосов
/ 02 марта 2010

Попробуйте это:

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

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

См. События синхронизации Javascript .

0 голосов
/ 02 марта 2010

Оберните код анимации в функцию, и в конце установите таймер для себя. Что-то вроде:

function doAnimation() {
    setTimeout("first()",0);
    setTimeout("second()",10000);
    setTimeout("third()",20000);
    setTimeout("fourth()",30000);
    setTimeout("fifth()",40000);
    setTimeout("doAnimation()", 50000);
}
0 голосов
/ 02 марта 2010

Пусть каждая функция запускает следующую, используя параметр обратного вызова!

...