La regla-at
@keyframes se utiliza para definir una secuencia de fotogramas de una animación CSS.La sintaxis
Como las demás reglas-at,
@keyframes es un bloque de código que empieza con la palabra clave @keyframes seguida por el nombre de la animación. A continuación entre llaves {} aparecen todas las reglas CSS que definen una secuencia de fotogramas.
@keyframes nombreAnimacion {
/*las reglas para nombreAnimacion */
}
Veamos un caso práctico: una animación donde el color de fondo de un elemento HTML cambiará de rojo (
#f00 ) a rojo oscuro (#e00 ). La animación cuenta con dos fotogramas: al principio ( 0% ) y al final ( 100% ).
@keyframes cambiarColor {
0% { background-color: #f00;}
100% { background-color: #e00;}
}
¡Ojo!: los selectores de las fotogramas
0% y 100% son porcentajes y tienen que llevar el símbolo %. También podemos utilizar como selectores las palabras clave from ( desde ) en lugar de 0% y to ( hasta ) en lugar de 100%.
@keyframes cambiarColor {
from { background-color: #f00;}
to { background-color: #e00;}
}
En el caso de que queramos que el color parpadee podemos escribir algo así:
@keyframes cambiarColor {
0% { background-color: #f00;}
25% { background-color: #e00;}
50% { background-color: #f00;}
75% { background-color: #e00;}
100% { background-color: #f00;}
}
O para evitar tanta verbosidad podemos abreviar todo este código así:
@keyframes cambiarColor {
0%, 50% , 100% { background-color: #f00;}
25%, 75% { background-color: #e00;}
}
También podemos animar varias propiedades a la vez.
@keyframes latido {
0%, 50% , 100% {
color: #e00;
transform:scale(1);
}
25%, 75% {
color: #f00;
transform:scale(1.25);
}
}
Es importante que las propiedades modificadas en el bloque de código
@keyframes puedan ser animadas ( animatables ). De lo contrario estas reglas serán ignoradas. . . con una excepción.
La propiedad
animation-timing-function ( función de temporizador de la animación ) puede ser utilizada en el bloque de código @keyframes para especificar la curva de velocidad de la animación.
@keyframes latido {
0%, 50% , 100% {
color: #e00;
transform:scale(1);
animation-timing-function: ease-in;;
}
25%, 75% {
color: #f00;
transform:scale(1.25);
animation-timing-function: ease-out;;
}
}
Actualmente las reglas-at
. Para soporte en los navegadores antiguos es recomendable utilizar una librería JavaScript externa como por ejemplo prefixfree
@keyframes están soportadas en todos los navegadores modernos
0 Comentarios