Propiedad animation-direction

La propiedad animation-direction establece la dirección de la animación. Por defecto, la animación se repetirá sólo 1 vez y luego volverá a su estado original, luego, si se establece un retardo animation-delay, esperará el tiempo establecido y luego el ciclo comenzará de nuevo.

Esta propiedad permite cambiar este comportamiento, por ejemplo, para que la animación después de terminar permanezca en el lugar donde terminó, y no salte a la posición inicial.

También se puede establecer este comportamiento: la animación llegará al punto extremo y volverá hacia atrás (como en transition). Vea la descripción a continuación.

Sintaxis

cssselector {
  animation-direction: normal | reverse | alternate | alternate-reverse;
}

Valores

Valor Descripción
reverse La animación se reproducirá en dirección inversa.
alternate La animación se reproducirá primero en dirección normal, y luego en dirección inversa (como transition).
alternate-reverse La animación se reproducirá desde la posición final a la inicial y viceversa. Esencialmente son los valores alternate y reverse en uno solo.
normal La animación se reproducirá desde el principio hasta el final, y después de terminar saltará bruscamente a la posición inicial.

Valor por defecto: normal.

Ejemplo

Ahora el elemento se moverá en una dirección, y luego volverá hacia atrás, ya que se estableció el valor alternate. Al mismo tiempo, animation-duration tiene un valor de 3 segundos y esto significa que los movimientos de "ida" y "vuelta" durarán 3 segundos cada uno:

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

Результат:

Ejemplo

Ahora el elemento se moverá en la dirección contraria (debería ser de izquierda a derecha, pero será de derecha a izquierda):

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

Результат:

Ejemplo

Ahora el elemento se moverá de un lado a otro, pero en dirección inversa (debería comenzar desde la izquierda, pero comenzará desde la derecha):

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

Результат:

Vea también

  • la propiedad animation-name,
    que establece el nombre de la animación
  • la propiedad animation-duration,
    que establece la duración de la animación
  • la propiedad animation-delay,
    que establece el retardo antes de ejecutar la animación
  • la propiedad animation-timing-function,
    que establece la velocidad de ejecución de la animación
  • la propiedad animation-iteration-count,
    que establece el número de iteraciones de la animación
  • la propiedad animation-fill-mode,
    que establece el estado de la animación
  • la propiedad animation-play-state,
    que permite pausar la animación
  • la propiedad animation,
    que representa una forma abreviada para las animaciones
  • la regla @keyframes,
    que establece los fotogramas clave de la animación
  • las transiciones suaves transition, que representan una animación al pasar el cursor sobre un elemento