Chaînage d'animations jQuery affectant différents éléments
$(document).ready(function() {
$("#div1").fadeIn("slow");
$("#div2").delay(500).fadeIn("slow");
$("#div3").delay(2000).fadeIn("slow");
$("#div4").delay(8000).fadeIn("slow");
});
C'est mon setup actuel, mais je sens que ce n'est pas la meilleure façon de les écrire. Je ne peux pas trouver des exemples sur la façon dont vous écrivez mieux pour le chronométrage. Toute aide? Je l'apprécierais.
Je dois également ajouter que le timing de chaque élément n'est pas cohérente.
source d'informationauteur Tom
Vous devez vous connecter pour publier un commentaire.
fadeIn
prend un rappel comme second paramètre. Que le rappel est exécutée dès que l'animation est terminée. Si vous souhaitez que les éléments à s'estomper de manière séquentielle, vous pouvez enchaîner les rappels:Cela pourrait être ré-écrite à l'aide d'un tableau de sélecteurs et une seule méthode, si vous vous êtes senti comme ça:
Voir ce dernier dans l'action au JSBin.
Cela peut être fait avec élégance depuis la 1.8:
http://jsfiddle.net/f3WzR/
Je le ferais dans une boucle, tant que vous parlez d'un uniforme de l'incrément (et tant qu'ils apparaissent dans le même ordre sur la page).
Exemple: http://jsfiddle.net/km66t/
Il utilise l'index transmis par
.each()
pour incrémenter le retard.De sorte que vous êtes effectivement en train de faire:
EDIT: l'espoir De traiter la question dans le commentaire ci-dessous, vous pouvez stocker un Tableau des délais que vous souhaitez utiliser, et d'accéder à l'index approprié du Tableau à l'aide de l'indice de
.each()
.Pas heureux avec les réponses, voici ce que j'ai utilisé:
De cette façon, vous n'avez pas à déclarer les retards.