Déclenche une animation via un traitement lancé à intervalle régulier
Syntaxe Number requestAnimationFrame(Function traitement)
Compatible tous navigateurs
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Description Déclenche une animation via un appel régulier à la fonction traitement(). Un identifiant est retourné pour interrompre l'animation avec cancelAnimationFrame().
L'usage de requestAnimationFrame() est proche de setInterval(), mais a plusieurs avantages :
- le navigateur optimise les traitements pour garantir un rafraichissement régulier, généralement à 60 images par seconde (ou FPS = Frames Par Seconde)
- le navigateur interrompt l'animation lorsque l'onglet n'est plus visible afin de réduire la consommation CPU
- l'animation est plus fluide
/* Si le ballon dépasse le conteneur, on inverse le sens pour générer le rebond */ if ((x+diametre>largeur) || (x<0)) {
deltaX=-1*deltaX;
} if ((y+diametre>hauteur) || (y<0)) {
deltaY=-1*deltaY;
}
// Toutes les nbFPS animations, maj du contenu div#fps if (NBanimation % nbFPS == 0) { var microtime2=window.performance.now();
// Temps écoulé depuis le dernier appel var delai=microtime2-microtime1;
// Conversion en FPS (frame par seconde) var fps = Math.round(1/delai*1000*nbFPS); document.getElementById("fps").innerHTML=fps + " FPS";
microtime1=microtime2;
}
IDanimation = requestAnimationFrame(animer);
}