Pre谩mbulo
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.
Una animaci贸n est谩 formada por varios fotogramas.
En CSS, los fotogramas se crean a partir de propiedades CSS, y no hace falta definir tantos fotogramas.
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:
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 |
Regla para darle un nombre y definir los fotogramas clave de una animaci贸n. |
from | to | |
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.