mi茅rcoles, 31 de agosto de 2022

馃捇 La regla @keyframes Crear fotogramas clave de una animaci贸n

Pre谩mbulo


1

Cuando ya hemos utilizado propiedades CSS como animation (o de su familia, animation-*), nos falta una parte muy importante: definir los fotogramas de la animaci贸n.

2

Una animaci贸n est谩 formada por varios fotogramas.

3

En CSS, los fotogramas se crean a partir de propiedades CSS, y no hace falta definir tantos fotogramas.

4

S贸lo crearemos fotogramas clave y el resto de fotogramas los generar谩 el navegador.


Los fotogramas, son una secuencia de im谩genes (30-60 fotogramas por segundo, por ejemplo) que mostradas una detr谩s de otra generan el efecto de movimiento que conocemos de una animaci贸n.

 

Para definir esos fotogramas clave, utilizaremos la regla @keyframes, la cu谩l es muy sencilla de utilizar. Se basa en el siguiente esquema:

 

Sintaxis de la regla @keyframes de CSS

Cada uno de estos time-selector ser谩 un momento clave de cada uno de los fotogramas clave de nuestra animaci贸n, y ya veremos que pueden definirse muchos en una misma animaci贸n.

Selectores from y to

Como vemos, dicha sintaxis tiene dos partes interesantes, ya que las reglas (propiedad, valor) ya las conocemos en CSS. Las partes principales por las que debemos comenzar son:

Parte Descripci贸n
@keyframes name Regla para darle un nombre y definir los fotogramas clave de una animaci贸n.
from | to | time Momento en el que se van a activar los estilos CSS en la animaci贸n.

Esto siempre se ve mejor con un ejemplo, as铆 que vamos a mostrarlo:

@keyframes change-color {
from { background: red; } /* Primer fotograma */
to { background: green; } /* Segundo y 煤ltimo fotograma */
}

Como vemos, hemos nombrado change-color la animaci贸n, que parte de un primer fotograma clave con el fondo rojo hasta un 煤ltimo fotograma clave con fondo verde.

Cuidado con olvidarse de la s final de @keyframes, ya que est谩 en plural. Respecto al nombre de la animaci贸n, lo recomendable es utilizar kebab-case a la hora de nombrarla y que represente bien lo que hace.

Recuerda que no basta con definir la animaci贸n mediante @keyframes, tambi茅n que hay que asociar la animaci贸n al elemento o etiqueta HTML al que queremos aplic谩rsela:

.animated {
background: grey;
color: #FFF;
width: 150px;
height: 150px;
animation: change-color 2s ease 0s infinite;
}

La magia de la regla @keyframes es que nosotros solo declaramos los fotogramas clave, mientras que el navegador ir谩 generando los fotogramas intermedios para conseguir una animaci贸n fluida.

Truco: Si una animaci贸n va a golpes, es muy posible que te hayas pasado con el tiempo de duraci贸n de la misma. Intenta utilizar valores bajos como 0.25s, 0.5s, 1s y no valores mucho m谩s altos.

Selectores porcentuales

Los selectores from y to son muy similares a colocar 0% y 100%, as铆 que los modificaremos y de esta forma podremos ir a帽adiendo nuevos fotogramas intermedios. Vamos a a帽adir un fotograma intermedio e indentando, ahora s铆, correctamente el c贸digo:

@keyframes change-color {
0% {
background: red; /* Primer fotograma */
}
50% {
background: yellow; /* Segundo fotograma */
width: 400px;
}
100% {
background: green; /* 脷ltimo fotograma */
}
}

.animated {
background: grey;
color: #FFF;
width: 150px;
height: 150px;
animation: change-color 2s ease 0s infinite;
}

En este caso, la animaci贸n va a progresar por tres fotogramas clave, por lo que ir谩 desde el color rojo, al color amarillo, para finalizar en el color verde. Esta animaci贸n funcionar谩 durante 2 segundos y se realizar谩 una sola vez (por defecto las animaciones solo se realizan una vez, salvo que le indiques infinite o el n煤mero deseado).

Truco: Si tienes fotogramas que van a utilizar los mismos estilos que uno anterior, siempre puedes separarlos con comas, por ejemplo: 0%, 75% { ... }, que utilizar铆an dichos estilos al inicio de la animaci贸n y al 75% de la misma.




No hay comentarios.:

Publicar un comentario

Nota: s贸lo los miembros de este blog pueden publicar comentarios.