Element.animate()
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2020.
* Some parts of this feature may have varying levels of support.
La méthode animate()
de l'interface Element
est un raccourci permettant de créer un nouvel objet Animation
, de l'appliquer à un élément puis de la jouer. Elle retourne l'instance Animation
alors créée.
Note :
Les éléments peuvent avoir plusieurs animations qui leur sont appliquées. Vous pouvez obtenir une liste des animations qui affectent un élément en appelant Element.getAnimations()
.
Syntaxe
animate(keyframes, options);
Paramètres
keyframes
-
Un tableau d'objets représentant les étapes ou un objet dont les propriétés sont les tableaux des valeurs sur lesquelles itérer. Voir les formats de keyframe pour plus de détails.
options
-
Soit un entier indiquant la durée de l'animation en millisecondes, ou un objet qui contient une ou plusieurs propriétés de temporisation décrites dans le paramètre
options
pourKeyframeEffect()
et/ou les options suivantes :id
Facultatif-
Une propriété unique pour
animate()
: il s'agit d'une chaîne de caractèresDOMString
qu'on pourra utiliser pour faire référence à l'animation en question.
Valeur de retour
Renvoie un objet Animation
.
Exemples
Dans la démonstration Dans le terrier du lapin (avec l'API Web Animation), on utilise la méthode animate()
pour créer et immédiatement jouer une animation sur l'élément #tunnel
afin que celui-ci défile vers le haut de façon infinie (voir les bords). Voyez ici les objets passés comme étapes et les options de temporisation.
document.getElementById("tunnel").animate(
[
// étapes/keyframes
{ transform: "translateY(0px)" },
{ transform: "translateY(-300px)" },
],
{
// temporisation
duration: 1000,
iterations: Infinity,
},
);
Étapes initiales ou finales implicites
Pour les navigateurs récents, il est possible d'indiquer uniquement un état de début ou de fin pour une animation (c'est-à-dire une seule étape), c'est le navigateur qui déduira, si possible, l'autre étape (de début ou de fin donc). Prenons comme exemple cette animation simple, l'objet pour l'étape ressemble à :
let rotate360 = [{ transform: "rotate(360deg)" }];
On a uniquement indiqué l'état final de l'animation, l'état initial est implicite.
Spécifications
Specification |
---|
Web Animations # dom-animatable-animate |
Compatibilité des navigateurs
BCD tables only load in the browser