Las animaciones en css3 nos permiten hacer cosas que con las transiciones no alcanzamos y nos quedamos cortos.
La sintaxis básica para una animación:
Elemento {
animation-name: [nombre de la animación];
animation-duration: [tiempo de duración];
}
@ keyframes [nombre de la animación] {
from {
[propiedades y valores del estado inicial de la animación]
}
to {
[propiedades y valores del estado final de la animación]
}
}
Veamos un ejemplo donde emplearemos la sintaxis expuesta, a este momento solo el FireFox, Chrome y Opera implementan las animaciones. Mostraremos un recuadro con un texto que parta de la columna 30px y avance hasta la columna 300px y que cambie del color gris al color amarillo:
#recuadro1{
left:30px;
position:relative;
border-radius: 20px;
background-color:#ddd;
width:200px;
height:100px;
padding:4px;
-moz-animation-name: animacion1;
-moz-animation-duration: 4s;
-webkit-animation-name: animacion1;
-webkit-animation-duration: 4s;
-o-animation-name: animacion1;
-o-animation-duration: 4s;
}
@-moz-keyframes animacion1 {
from {
left:30px;
background-color:#ddd;
}
to {
left:300px;
background-color:#ff0;
}
}
@-webkit-keyframes animacion1 {
from {
left:30px;
background-color:#ddd;
}
to {
left:300px;
background-color:#ff0;
}
}
@-o-keyframes animacion1 {
from {
left:30px;
background-color:#ddd;
}
to {
left:300px;
background-color:#ff0;
}
}
Como podemos ver inicializamos las propiedades animation-name con el nombre de la animación:
-moz-animation-name: animacion1; -webkit-animation-name: animacion1; -o-animation-name: animacion1;
Y la propiedad animation-duration con el tiempo duración de la animación:
-moz-animation-duration: 4s; -webkit-animation-duration: 4s; -o-animation-duration: 4s;
La sintaxis para especificar la animación propiamente dicha es idéntica para cada navegador pero como debemos utilizar el prefijo luego creamos tres:
@-moz-keyframes animacion1 {
from {
left:30px;
background-color:#ddd;
}
to {
left:300px;
background-color:#ff0;
}
}
En la parte del from indicamos el estado inicial del elemento (en este caso 30 píxeles respecto a la izquierda y de color gris (#ddd)), luego en la sección del to indicamos los valores finales que debe tomar el elemento (300 píxeles respecto a la izquierda y de color amarillo(#ff0))