--- 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()")}}.

Syntaxe

element.animate(keyframes, options); 

Paramèters

keyframes

Un objet formatté représentant un ensemble de keyframes.

options
Un nombre entier (Integer) représentant la durée de l'animation (en millisecondes), ou un objet (Object) contenant une ou plusieurs propriétés de timing
id {{optional_inline}}
Une propriété unique pour animate(): une DOMString qui permet de référencer l'animation.
{{Page("/en-US/docs/Web/API/Web_Animations_API/Animation_timing_properties", "Properties")}}

Options à venir

Les options suivantes n'ont pas encore été implémentées, mais seront ajoutées dans un futur proche.

composite {{optional_inline}}
Détermine comment sont combinées les valeurs de cette animation avec d'autres animations qui ne spécifient pas leur propre opération composite. La valeur par défaut est replace.
iterationComposite {{optional_inline}}
Détermine comment les valeurs se construisent, d'itération en itération, dans une même animation. Peut être définie par accumulate ou replace (voir ci-dessus). La valeur par défaut est replace.
spacing {{optional_inline}}
Détermine comment les keyframes sans offset temporel devraient être réparties sur la durée de l'animation. La valeur par défaut est distribute.

 

Valeur de retour

Retourne un objet de type {{domxref("Animation")}}.

Exemple

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écifications

Spécification Statut Commentaire
{{SpecName('Web Animations', '#the-animatable-interface', 'animate()' )}} {{Spec2('Web Animations')}} Initial definition

Compatibilité des navigateurs

{{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}}

Voir aussi