--- 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);
keyframes
options
id {{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 |
{{CompatibilityTable}}
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | {{CompatChrome("36")}} | {{CompatUnknown}} | {{ CompatGeckoDesktop("48.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
id option |
{{CompatChrome(50.0)}} | {{CompatUnknown}} | {{ CompatGeckoDesktop("48.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
composite , iterationComposite , and spacing options |
{{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
Feature | Android | Android Webview | Chrome for Android | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|---|
Basic support | {{CompatUnknown}} | {{CompatChrome(39.0)}} | {{CompatChrome(39.0)}} | {{ CompatGeckoMobile("48.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
id option |
{{CompatNo}} | {{CompatChrome(50.0)}} | {{CompatChrome(50.0)}} | {{ CompatGeckoMobile("48.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
composite , iterationComposite , and spacing options |
{{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |