2012-06-27 4 views
0

Pour expliquer ma question, j'ai créé ce http://jsfiddle.net/Jams/XNVB2/ ici je veux quand div1 complète son animation de 25% puis div2 devrait commencer son animation et quand div1 complète son animation 50% alors div3 devrait commencer son animation.Comment gérer les intervalles de temps entre les animations?

Voici le code jquery

$("#div1").animate({width:400},2000); 
$("#div2").animate({width:400},2000); 
$("#div3").animate({width:400},2000); 
+0

Possible duplicate: http://stackoverflow.com/q/3583942 –

Répondre

4

Cela devrait fonctionner: http://jsfiddle.net/XNVB2/1/

$("#div1").animate({ 
    width: 400 
}, 2000); 
setTimeout(function() { 
    $("#div2").animate({ 
     width: 400 
    }, 2000); 
}, 500); 
setTimeout(function() { 
    $("#div3").animate({ 
     width: 400 
    }, 2000); 
}, 1000); 

Alternativement, vous pouvez aussi le faire avec queue: http://jsfiddle.net/XNVB2/2/

var animLength = 2000; 
$("#div1").animate({width:400},animLength); 
$("#div2").delay(animLength * 0.25).queue(function(n){ 
    $(this).animate({width:400},animLength); 
    n(); 
}); 
$("#div3").delay(animLength * 0.5).queue(function(n){ 
    $(this).animate({width:400},animLength); 
    n(); 
}); 

+0

Merci pour la réponse rapide. Votre réponse est bonne. S'il vous plaît dites-moi une chose Y at-il aucune fonction dans jquery (au lieu de setTimeout)? – jams

+0

Juste mis à jour ma réponse. Les secondes options sont probablement meilleures. –

+0

[ici] (http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_animation) une animation est en cours d'exécution après que la première est terminée, mais dans mon cas toutes les animations s'exécutent en même temps? désolé pour une autre question. – jams

Questions connexes