--- title: Element.animate() slug: Web/API/Element/animate tags: - API translation_of: Web/API/Element/animate ---
{{APIRef('Web Animations')}} {{SeeCompatTable}}
La méthode Element.animate() est un raccourci permettant de créer et jouer une animation sur un élément. Elle retourne l'instance de type {{domxref("Animation")}} alors créée.
Les éléments peuvent avoir plusieurs animations. Vous pouvez obtenir une liste des animations qui affectent un élément en appelant {{domxref("Element.getAnimations()")}}.
element.animate(keyframes, options);
keyframesoptionsid {{optional_inline}}animate(): une DOMString qui permet de référencer l'animation.Les options suivantes n'ont pas encore été implémentées, mais seront ajoutées dans un futur proche.
composite {{optional_inline}}replace.
add induit un effet d'ajout, dans lequel chaque itération successive se construit sur la précédente. Par exemple pour transform, une valeur translateX(-200px) n'annulerait pas une précédente valeur rotate(20deg) mais s'y ajouterait, pour donner translateX(-200px) rotate(20deg).accumulate est similaire mais un peu plus intéressant: blur(2) et blur(5) deviennent blur(7) et non blur(2) blur(5).replace, quand à elle, remplace la précédente valeur par la nouvelle. iterationComposite {{optional_inline}}accumulate ou replace (voir ci-dessus). La valeur par défaut est replace.spacing {{optional_inline}}distribute.
distribute positionne les keyframes de façon à ce que les différences entre deux offsets de keyframes successifs soient égaux, c'est-à-dire que, sans aucun offset, les keyframes seront distribuées régulièrement / également sur toute la durée de l'animation.paced positionne les keyframes de façon à ce que les distances entre deux valeurs successives d'une propriété spécifiée par "paced" soient égales, c'est-à-dire que plus la différence entre les valeurs de ces propriétés successives est grande, plus les keyframes seront éloignées les unes des autres.
Retourne un objet de type {{domxref("Animation")}}.
Dans la démo Down the Rabbit Hole (with the Web Animation API), la méthode animate() est utilisée pour immédiatement créer et jouer une animation sur l'élément #tunnel, pour le faire défiler vers le haut, indéfiniment. Remarquez le tableau d'objets définissant les keyframes et le bloc contenant les options de timing de l'animation.
document.getElementById("tunnel").animate([
// keyframes
{ transform: 'translateY(0px)' },
{ transform: 'translateY(-300px)' }
], {
// timing options
duration: 1000,
iterations: Infinity
});
| Spécification | Statut | Commentaire |
|---|---|---|
| {{SpecName('Web Animations', '#the-animatable-interface', 'animate()' )}} | {{Spec2('Web Animations')}} | Initial definition |
{{Compat("api.Element.animate")}}