277 of 313 menu

Propriété animation-fill-mode

La propriété animation-fill-mode définit la position dans laquelle l'animation s'arrête après sa fin. Par défaut, l'animation revient à sa valeur initiale et cela peut ne pas être très esthétique.

Syntaxe

sélecteur { animation-fill-mode: backwards | forwards | both | none; }

Valeurs

Valeur Description
none Si un délai d'animation est défini - pendant la durée du délai l'élément restera en place, puis sautera vers la frame 0%. Après la fin de l'animation, l'élément ne restera pas dans l'état où il s'est arrêté, mais sautera vers l'état initial.
backwards Force l'élément à se déplacer après le chargement de la page vers la frame 0%, même si un délai animation-delay est défini, et à y rester jusqu'au début de l'animation. Après la fin de l'animation, l'élément ne restera pas dans l'état où il s'est arrêté, mais sautera vers l'état initial.
forwards Indique au navigateur qu'après la fin de l'animation, l'élément restera dans l'état où il s'est arrêté.
both Inclut backwards et forwards - après le chargement de la page, l'élément se positionnera sur la frame 0%, et après la fin de l'animation, l'élément restera où il s'est arrêté.

Valeur par défaut : none.

Exemple . Valeur none

Dans cet exemple, margin-left est défini à la valeur 300px pour l'élément, et pour la première frame de l'animation - à 0px. Comme il n'y a pas de délai animation-delay, l'élément après le chargement de la page se positionnera à 0px, et non à 300px. De plus, l'animation après sa fin sautera vers la valeur initiale :

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: none; animation-delay: 0s; animation-duration: 3s; animation-name: move; animation-iteration-count: infinite; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Exemple . Valeur none

Dans cet exemple, margin-left est défini à la valeur 300px pour l'élément, et pour la première frame de l'animation - à 0px. Un délai animation-delay de 3 secondes est également défini pour l'élément, donc l'élément après le chargement de la page se positionnera à 300px, et non à 0px, et y restera pendant 3 secondes après le début de l'animation puis sautera vers 0px - et l'animation commencera de là. De plus, l'animation après sa fin sautera vers la valeur initiale :

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: none; animation-delay: 0s; animation-duration: 3s; animation-name: move; animation-iteration-count: infinite; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Exemple . Valeur backwards

Dans cet exemple, margin-left est défini à la valeur 300px pour l'élément, et pour la première frame de l'animation - à 0px. animation-fill-mode est également défini sur la valeur backwards, donc l'élément après le chargement de la page se positionnera à 0px, et non à 300px, comme c'était le cas pour animation-fill-mode sur la valeur none. De plus, l'animation après sa fin sautera vers la valeur initiale :

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: backwards; animation-delay: 0s; animation-duration: 3s; animation-name: move; animation-iteration-count: infinite; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Exemple . Valeur none et nombre de répétitions égal à 1

Dans cet exemple, margin-left est défini à la valeur 300px pour l'élément, et pour la première frame de l'animation - à 0px. Un délai animation-delay de 3 secondes est également défini pour l'élément, donc l'élément après le chargement de la page se positionnera à 300px, et non à 0px, et y restera pendant 3 secondes après le début de l'animation puis sautera vers 0px - et l'animation commencera de là. Comme animation-fill-mode est défini sur la valeur none, après la lecture de l'animation l'élément reviendra à la valeur initiale :

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: none; animation-delay: 3s; animation-duration: 3s; animation-name: move; animation-iteration-count: 1; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Exemple . Valeur forwards et nombre de répétitions égal à 1

Dans cet exemple, animation-fill-mode est défini sur la valeur forwards, et le nombre de répétitions de l'animation - sur 1. Après la lecture de l'animation, l'élément restera dans la position où l'animation s'est terminée, et ne sautera pas vers le point de départ.

De plus, margin-left est défini à la valeur 300px pour l'élément, et pour la première frame de l'animation - à 0px. Un délai animation-delay de 3 secondes est également défini pour l'élément, donc l'élément après le chargement de la page se positionnera à 300px, et non à 0px, et y restera pendant 3 secondes après le début de l'animation, puis sautera vers 0px - et l'animation commencera de là :

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: forwards; animation-delay: 3s; animation-duration: 3s; animation-name: move; animation-iteration-count: 1; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Exemple . Valeur both et nombre de répétitions égal à 1

Dans cet exemple, animation-fill-mode est défini sur la valeur both, et le nombre de répétitions de l'animation - sur 1. Après le chargement de la page, l'élément se positionnera sur la première frame de l'animation (à 0px, et non à 300px), et après la lecture de l'animation l'élément restera dans la position où l'animation s'est terminée, et ne sautera pas vers le point de départ :

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: both; animation-delay: 3s; animation-duration: 3s; animation-name: move; animation-iteration-count: 1; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Voir aussi

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser