J'essaie de colorer certains rectangles, mais je veux le faire avec un deuxième intervalle pour que je puisse les voir changer de couleur un par un.
J'ai essayé d'utiliser SettimeOut (); et ont examiné de nombreuses réponses différentes dans le débordement de pile, mais je n'ai pas été en mesure de le faire fonctionner, actuellement lorsque j'utilise ce code, le délai semble ajouter, puis tous les blocs changent de couleur en même temps. P > J'utilise le code ci-dessous pour générer le code p> et c'est ce que mon HTML ressemble à p> < Pré> xxx pré> p>
3 Réponses :
à cause du JS Vous devez donc personnaliser ci-dessous J'ai essayé de modifier une partie du code au travail: p> 0.5S
1s
... p> Vous pouvez en savoir plus sur EventLoop code> Tous les fonctions code> SetTimeout code> sont en cours d'exécution (presque) en même temps (en raison de la propriété à thread unique de JS, ils sont en cours d'exécution. Un autre, mais vous avez gagné).
délai code> variable pour chacun des
Settimeout code> s de
Pour les faire courir avec le délai de 500ms après l'appel de la fonction précédent. P> Settimeout code> s sont exécutés dans la séquence ci-dessous: p>
EventLoop Code> à partir d'ici: boucle d'événement JavaScript expliquée p> p>
Les appels de fonctions dans la boucle d'événement sont traités l'un après l'autre (JS est à une seule-filetée, de sorte que de nombreuses fonctions fonctionnent en même temps). De plus, le temps mentionné à Settimeout est la période la plus rapide dans laquelle la fonction peut fonctionner.
@Rahulpadalkar merci pour l'explication. J'ajoute le un seul thread code> à ma description. Et pour le temps plus rapide que vous avez mentionné, j'ai utilisé le mot
au moins après 500ms code> pour la décrire. Merci d'avoir mentionné quand même.
Je pense que c'est ce que vous recherchez, j'ai ajouté un script pour générer la grille depuis que vous ne l'avez pas fourni, vous pouvez manipuler l'animation en ajoutant / en supprimant p>
x code> et
Y code> à partir de la fonction code> Timeout code> et modifiez également
100 code> ms in
y * x * 100 code>.
<div id="container">
</div>
Il est élégant que vous avez gardé le code OP et que vous avez simplement multiplié le temps de snooze, je l'aime :)
Merci, mieux de garder les changements le moins aussi peu que possible;) Merci! Votre réponse est bonne aussi que j'aurais aussi avancé la vôtre aussi, mais j'ai déjà atteint ma limite de upvote pour aujourd'hui! peut être demain.
Vous demandez un rappel 10x10 en même temps, c'est pourquoi tous les carrés sont changés en même temps. En savoir plus sur la façon dont Une solution consiste à utiliser le p> Settimeout () code> fonctionne, c'est un excellent vidéo à ce sujet.
setInterval () code>, ce n'est pas vraiment une norme d'utilisation de l'espace dans le
ID code> champ, donc j'ai utilisé le soulignement à la place. p>
<div class="line">
<div id="0_0"></div>
<div id="0_1"></div>
<div id="0_2"></div>
</div>
<div class="line">
<div id="1_0"></div>
<div id="1_1"></div>
<div id="1_2"></div>
</div>
<div class="line">
<div id="2_0"></div>
<div id="2_1"></div>
<div id="2_2"></div>
</div>
Pouvez-vous mettre votre HTML aussi
Pourquoi ne pas faire une fonction qui définit une couleur d'un élément, stockez le carré actuel dans une variable - et appelez la fonction pour régler le premier carré, à la fin de laquelle vous aurez SETTITimeOut et dans le rappel de celui-ci. J'appellerais la même fonction pour le prochain carré. Une récursion essentiellement.