Propriété animation-direction

La propriété animation-direction définit le sens de l'animation. Par défaut, l'animation ne se répète que 1 fois puis revient à son état initial, ensuite, si un délai animation-delay est défini, elle attend le temps spécifié puis le cycle recommence depuis le début.

Cette propriété permet de modifier ce comportement, par exemple, pour que l'animation reste à la fin à l'endroit où elle s'est terminée, au lieu de revenir brusquement à la position initiale.

Il est également possible de définir un comportement où l'animation va jusqu'au point extrême puis revient en arrière (comme dans transition). Voir la description ci-dessous.

Syntaxe

csssélecteur {
  animation-direction: normal | reverse | alternate | alternate-reverse;
}

Valeurs

Valeur Description
reverse L'animation sera jouée en sens inverse.
alternate L'animation sera jouée d'abord dans le sens normal, puis en sens inverse (comme transition).
alternate-reverse L'animation sera jouée de la position finale vers la position initiale et inversement. Essentiellement, c'est les valeurs alternate et reverse en une seule.
normal L'animation sera jouée du début à la fin, et après la fin, elle reviendra brusquement à la position initiale.

Valeur par défaut : normal.

Exemple

Maintenant, l'élément se déplacera dans un sens, puis reviendra en arrière, car la valeur alternate est définie. De plus, animation-duration a une valeur de 3 secondes, ce qui signifie que les déplacements "aller" et "retour" dureront chacun 3 secondes :

html<div id="elem"></div>
css@keyframes move {
  from {
    margin-left: 0;
  }
  to {
    margin-left: 400px;
  }
}

#elem {
  animation-direction: alternate;
  animation-duration: 3s;
  animation-name: move;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  border: 1px solid black;
  width: 50px;
  height: 50px;
}

Результат:

Exemple

Maintenant, l'élément se déplacera dans le sens inverse (devrait aller de gauche à droite, mais ira de droite à gauche) :

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

Результат:

Exemple

Maintenant, l'élément se déplacera aller-retour, mais en sens inverse (devrait commencer à gauche, mais commencera à droite) :

html<div id="elem"></div>
css@keyframes move {
  from {
    margin-left: 0;
  }
  to {
    margin-left: 400px;
  }
}

#elem {
  animation-direction: alternate-reverse;
  animation-duration: 3s;
  animation-name: move;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  border: 1px solid black;
  width: 50px;
  height: 50px;
}

Результат:

Voir aussi