Résumé
Appelle une fonction de manière répétée, avec un certain délai fixé entre chaque appel.
Syntaxe
intervalID = window.setInterval(fonction,delai[,param1,param2, ...]); intervalID = window.setInterval(code,delai);
où
intervalID
est un ID unique d'intervalle qui peut être passé àwindow.clearInterval()
fonction
est la fonction qui doit être appelée de manière répétée.code
, dans la syntaxe alternative, est une chaîne représentant le code à exécuter de manière répétée.delai
est le nombre de millisecondes (millièmes de seconde) quesetInterval()
doit attendre avant chaque appel defonction
.
Notez que le passage de paramètres supplémentaires à la fonction dans la première syntaxe ne fonctionne pas dans Internet Explorer.
Exemples
var intervalID = window.setInterval(animation, 500);
L'exemple qui suit continuera à appeler la fonction flashtext()
toutes les secondes, jusqu'à ce que intervalID
soit réinitialisé en cliquant sur le bouton Stop.
<!DOCTYPE html> <html> <head> <title>setInterval/clearInterval example</title> <script> var intervalID; function changeCouleur() { intervalID = setInterval(flashText, 1000); } function flashText() { var elem = document.getElementById("ma_boite"); if (elem.style.color == 'red') { elem.style.color = 'blue'; } else { elem.style.color = 'red'; } } function stopTextColor() { clearInterval(intervalID); } </script> </head> <body onload="changeCouleur();"> <div id="ma_boite"> <p>Salut tout le monde</p> </div> <button onclick="stopTextColor();">Stop</button> </body> </html>
Notes
La fonction setInterval()
est habituellement utilisée pour définir un délai pour les fonctions qui sont exécutées indéfiniment, comme les animations.
La répétition peut être arrêtée à l'aide de window.clearInterval()
.
Si vous désirez que votre fonction ne soit appelée qu'
une seule fois
après le délai spécifié, utilisez window.setTimeout()
.
Le problème de « this »
Lorsque vous passez une méthode à setInterval()
(ou toute autre fonction, d'ailleurs), elle sera invoquée avec une mauvaise valeur pour this
. Ce problème est expliqué en détail dans la référence JavaScript.
Spécification
DOM Level 0. Ne fait partie d'aucune spécification.