Seleccionar página
agosto 28, 2017

Como crear una animación con CSS

por | CSS, Destacado

En este tutorial te voy a enseñar como puedes crear una animación con CSS. Además, vamos a conocer todas las subpropiedades y subvalores que la propiedad animation nos permite trabajar.

Definir nuestra animación con CSS

Utilizando @keyframes

Mediante la regla @keyframes estableceremos los fotogramas o pasos de nuestra animación con CSS. Cada uno de estos fotogramas definirá cómo se muestra la animación en cada momento de la secuencia. Estos dos momentos se definen mediante las órdenes from y to , y con ello, le indicaremos al navegador los momentos en los cuales comenzar y acabar. Existe la posibilidad de añadir fotogramas como pasos intermedios situados entre estos dos, como veremos más adelante.

Para generar la secuencia de animación, usamos la propiedad animation, con ella configuramos todos los detalles de la secuencia. Dentro de animation, tenemos las subpropiedades que se encargan de definir todos los detalles de ésta, así tenemos los comandos delay, direction, duration, iteration-count, name, play-state, timing-function y fill-mode.

Con este código estamos creado un objeto que cambiará de color. Esto se define con la regla @keyframes. En el ejemplo vamos animar o cambiar la propiedad background pero podríamos trabajar con width, margin, color, etc…

Mientras que con animation-name, animation-duration, animation-count:infinite. Definimos qué animación debemos aplicar, la duración y las veces que se reproduce esta animación.

Animation

Código resumido

En lugar de utilizar animation-name, animation-duration y animation-iteration-count. Sólo vamos a utilizar animation.

También podemos utilizar 0% y 100% en lugar de utilizar from y to. Vamos a trabajar con porcentajes porque luego vamos a añadir más fotogramas o estados a nuestra animación.

Modificando nuestra animación con CSS

Ahora vamos a añadir un nuevo frame o estado en nuestra animación; cambiaremos el color del fondo a amarillo, vamos editar el valor animation-direction para que la animación retroceda una vez acabe y no se vea ese pequeño salto, y por último, añadiremos un pequeño delay a nuestra nueva animación tresColores

 

Animation

 

En el código de arriba: animation:tresColores 3s 1s infinite alternate; «3s» corresponde a la duración de la animación y 1s corresponde al retardo que aplicamos. El valor duración debe ir siempre antes. Con alternate hacemos que nuestra animación retroceda una vez acaba.

Además hemos añadido un nuevo estado en la mitad de la animación con el valor 50%.

Combinar 2 animaciones css

Con una animación podemos modificar múltiples propiedades y también podemos combinar varias animaciones. En este ejemplo vamos a modificar el margen superior de nuestro elemento:

Animation

 

En este ejemplo, dentro de la propiedad animation, hemos separado por una coma cada una de las animaciones. Además hemos creado la nueva animación llamada desplazar que tiene cuatro frames o estados: 0%, 25%, 50% y 100%. En cada uno de estos estados transformamos el objeto.

Importante:

En la animación desplazar el valor 15 y el valor forwards corresponden a animation-iteration-count y a animation-fill-mode. Por eso la animación se reproduce sólo quince veces y una vez que termina no se reinicia a la posición inicial.

Crear una animación en CSS para varias propiedades

En el ejemplo anterior hemos visto que podemos utilizar varias animaciones. Ahora vamos a ver cómo podemos modificar varias propiedades con una animación. Por ejemplo, en este caso vamos a modificar la posición y los colores al mismo tiempo. En el tercer frame no vamos a editar la propiedad background.

Animation

 

 

Listado de las subpropiedades de animation

Antes de continuar haciendo más compleja nuestra animación con CSS, te voy a dejar un resumen de todas las subpopiedades y subvalores con los que podemos trabajar .

  • animation-name: Declaramos el nombre de la aniamación definida  con @keyframes a manipular.
  • animation-duration: La duración de la animacion CSS. Ejemplo: 3 segundos sería «3s».
  • animation-timing-function: Definimos la curva de aceleración de la animación. El valor por defecto el linear. Tenemos estos valores ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(n,n,n,n).
  • animation-delay: El retardo o el tiempo que tardará en comenzar la animación.
  • animation-direction: La dirección de la animación que tendrá una vez haya acabado, por defecto empezará desde el principio pero si añadimos el valor alternate la animación comienza por el final. Si no se reiniciará.
  • animation-iteration-count: El número de veces que se reproducirá. Podemos utilizar un número o el valor infinite.
  • animation-fill-mode: Valor o estado a aplicar después que acabe la animación. Podemos resetear el objeto o que el objeto tenga la apariencia que tenía al final de la animación. Valores none | forwards | backwards | both | initial | inherit;

 

¿Quieres los archivos de esta animación?

Anto Fernández

Anto Fernández

Mi nombre es Anto Fernández y gestiono este blog. En el puedes encontrar recursos que yo mismo he generado de tereceros acerca de diseño y maquetación web.

0 comentarios

Trackbacks/Pingbacks

  1. Transiciones CSS : Guia Básica. Tutorial de transiciones CSS - […] cuando conocemos su funcionamiento. Si te ha gustado este post te recomiendo que también leas: Como crear una animación…
  2. Animaciones, transiciones y transformaciones CSS - […] Más información: Crear una animación con CSS […]
  3. Diferencias entre animaciones y transiciones de CSS - Anto Fernández - […] También te recomiendo este post: Cómo crear una animación con CSS […]

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

NO TE PIERDAS NADA

SUSCRÍBETEA MI LISTA

Recibe en tu correo los nuevos post y contenidos de mi blog.

Revisa tu correo, sólo queda que confirmes tu suscripción al blog.