2010-11-10 8 views
2

Quelqu'un peut-il expliquer comment fonctionne cet extrait de code jQuery?Pourriez-vous expliquer ce code jQuery pour moi

C'est le html

<div class="faded">Div 1</div> 
<div class="faded">Div 2</div> 
<div class="faded">Div 3</div> 
<div class="faded">Div 4</div> 
<div class="faded">Div 5</div> 
<div class="faded">Div 6</div> 
<div class="faded">Div 7</div> 


$(".faded").each(function(i) { 
    $(this).delay(i * 400).fadeIn(); 
}); 

Im un peu coincé sur trouver comment fonctionne cette section

$(this).delay(i * 400).fadeIn(); 

Répondre

4

Il est équivalent à ceci:

$(this).delay(1 * 400).fadeIn(); 
$(this).delay(2 * 400).fadeIn(); 
$(this).delay(3 * 400).fadeIn(); 
$(this).delay(4 * 400).fadeIn(); 
$(this).delay(5 * 400).fadeIn(); 
// as long as there are elements in the wrapped set 

donc, fondamentalement, chaque div apparaît après un retard de valeur de i multipliée par 400 faisant de chaque émission div plus tard que la première.

5

Les boucles de code sur la divs et retarde la fonction fadeIn en fonction de leur ordre. C'est, d'abord div se fane après 1 * 400ms retard, seconde 2 * 400ms retard etc.

1

Les DIVs se fanent dans un à-un temps toutes les secondes ... 0,4

1

La façon la plus simple de l'expliquer serait de créer un jsfiddle pour que vous puissiez le voir en temps réel.

Lorsque vous .each sur la matrice, i sera l'index de l'élément en cours dans le tableau. Donc, il est juste en train de décolorer chaque élément un peu après l'élément précédent.

2

Chaque fonction parcourt tous les éléments correspondant à votre sélecteur (classe de 'faded'). Le paramètre i est le numéro d'index de l'élément. Comme ils sont dans l'ordre comme celui-ci, chacun est retardé de 400 secondes supplémentaires de sorte qu'ils se fanent dans un à la fois.

Vous pouvez expérimenter ici si vous aimez: http://jsfiddle.net/gfosco/Wx6Qr/

2
$(this).delay(i * 400).fadeIn(); 

delay(i * 400) attendra 400ms xi, donc il va attendre 400ms pour la première, 800ms pour la deuxième ...

Ensuite, le bloc va se faner.

Questions connexes