Saltar la navegación

Animaciones

Concepto

La propiedad CSS para definir una animación es animation. Las animaciones, a diferencia de las transiciones, permiten cambiar los valores de las propiedades de estilo entre varios puntos de cambio denominados fotogramas (o keyframes), partiendo de un inicio hasta llegar a su final.

Las animaciones no requieren definir un evento desencadenante de parte del usuario para ejecutar el efecto, como se lo hacía en las transiciones. No obstante, si se lo requiere, se podría definir el evento desencadenante.

Aplicar una animación consiste en estos simples pasos:

Paso 1:  Definir la Animación

Usando la instrucción @keyframe, define el nombre de la animación (ej., "mi_animacion") y luego indica la secuencia de pasos que tendrá la animación. Ejemplo:


@keyframes animacion-color {
  from { background: red; }
  to { background: green; }
}

La secuencia de pasos pueden ser definida de dos maneras.

  1. La primera, definiendo el fotograma origen con la instrucción from y el fotograma final con to (como se muestra en el ejemplo).
  2. La segunda implica pensar en la secuencia de pasos como si fuere una escala porcentual, donde 0% es el fotograma inicial y 100% es el fotograma final, por lo que para definir un fotograma entre el inicio y el fin, basta con definir un porcentaje entre 0% y 100%.

Paso 2: Aplicar animación al elemento HTML

Dentro de la regla de estilo del elemento HTML, usa la propiedad animation indicando el nombre de la animación definida en el paso 1 y configura ritmo, dirección y duración de la animación. En el ejemplo, la línea 5 indica el nombre de animación a ejecutar mediante la propiedad animation  :y "5s" indica la duración de la animación.

.element {
  width: 100px;
  height: 100px;
  background: grey;
  animation: animacion-color 5s;
}

 @keyframes animacion-color {. . .} /* Paso 1 */

Para configurar estos últimos detalles, se debe hacer uso de las siguientes sup-propiedades:

Sub-propiedad Descripción
animation-name Indica el nombre de la animación a ejecutar
animation-duration Duración de la animación (en segundos)
animation-delay Tiempo (en segundos) que tarda la animación en ejecutarse
animation-direction Orden de ejecución de los fotogramas de la animación. Puede ser en orden normal o en reversa, por ejemplo.
animation-iteration-count Número de veces que se ejecutará la animación (la secuencia de pasos)
animation-timing-function Velocidad de la animación, especificada mediante la curva bezier.
Si se tuviera más animaciones definidas, éstas se pueden asignar al elemento HTML. Por ejemplo, si tendríamos la animación "mi_animacion" a más de la que tenemos definida en la línea 8, las dos animaciones podrían asignarse al elemento HTML en la línea 5 de la siguiente manera: animation: animacion-color 5s, mi_animacion 3s;

Aprende practicando!

Creado con eXeLearning (Ventana nueva)