Cet article nécessite une relecture rédactionnelle. Voici comment vous pouvez aider.
Cette traduction est incomplète. Aidez à traduire cet article depuis l'anglais.
Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.
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 Animation
alors créée.
Syntaxe
element.animate(keyframes, options);
Paramèters
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 Facultatif
- Une propriété unique pour
animate()
: uneDOMString
qui permet de référencer l'animation.
AnimationEffectTimingProperties.delay
Optional- The number of milliseconds to delay the start of the animation. Defaults to
0
. AnimationEffectTimingProperties.direction
Optional- Whether the animation runs forwards (
normal
), backwards (reverse
), switches direction after each iteration (alternate
), or runs backwards and switches direction after each iteration (alternate-reverse
). Defaults tonormal
. AnimationEffectTimingProperties.duration
Optional- The number of milliseconds each iteration of the animation takes to complete. Defaults to
0
. AnimationEffectTimingProperties.easing
Optional- The rate of the animation's change over time. Accepts the pre-defined values
linear
,ease
,ease-in
,ease-out
, andease-in-out
, or a custom cubic-bezier value likecubic-bezier(0.42, 0, 0.58, 1)
. Defaults tolinear
. AnimationEffectTimingProperties.endDelay
Optional- The number of milliseconds to delay after the end of an animation. This is primarily of use when sequencing animations based on the end time of another animation. Defaults to
0
. AnimationEffectTimingProperties.fill
Optional- Dictates whether the animation's effects should be reflected by the element(s) prior to playing (
backwards
), retained after the animation has completed playing (forwards
), orboth
. Defaults tonone
. AnimationEffectTimingProperties.iterationStart
Optional- Describes at what point in the iteration the animation should start.
0.5
would indicate starting halfway through the first iteration for example, and with this value set, an animation with 2 iterations would end halfway through a third iteration. Defaults to0.0
. AnimationEffectTimingProperties.iterations
Optional- The number of times the animation should repeat. Defaults to
1
, and can also take a value of infinity to make it repeat infinitely.
Options à venir
Les options suivantes n'ont pas encore été implémentées, mais seront ajoutées dans un futur proche.
composite Facultatif
- 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
.add
induit un effet d'ajout, dans lequel chaque itération successive se construit sur la précédente. Par exemple pourtransform
, une valeurtranslateX(-200px)
n'annulerait pas une précédente valeurrotate(20deg)
mais s'y ajouterait, pour donnertranslateX(-200px) rotate(20deg)
.accumulate
est similaire mais un peu plus intéressant:blur(2)
etblur(5)
deviennentblur(7) et non
blur(2) blur(5)
.replace
, quand à elle, remplace la précédente valeur par la nouvelle.
iterationComposite Facultatif
- Détermine comment les valeurs se construisent, d'itération en itération, dans une même animation. Peut être définie par
accumulate
oureplace
(voir ci-dessus). La valeur par défaut estreplace
. spacing Facultatif
- 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
.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.
Valeur de retour
Retourne un objet de type 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 |
---|---|---|
Web Animations La définition de 'animate()' dans cette spécification. |
Version de travail | Initial definition |
Compatibilité des navigateurs
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | 36 | ? | 48.0 (48.0) | ? | ? | ? |
id option |
50.0 | ? | 48.0 (48.0) | ? | ? | ? |
composite , iterationComposite , and spacing options |
Pas de support | Pas de support | Pas de support | Pas de support | Pas de support | Pas de support |
Feature | Android | Android Webview | Chrome for Android | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|---|
Basic support | ? | 39.0 | 39.0 | 48.0 (48.0) | ? | ? | ? | ? |
id option |
Pas de support | 50.0 | 50.0 | 48.0 (48.0) | ? | ? | ? | ? |
composite , iterationComposite , and spacing options |
Pas de support | Pas de support | Pas de support | Pas de support | Pas de support | Pas de support | Pas de support | Pas de support |