Animaciones y transformaciones 2D y 3D con CSS
Escrito por
el .
planeta-codigo
web
Enlace permanente
Comentarios
En la antigüedad para añadir algo de dinamismo a las páginas había que hacerlo mediante código JavaScript, por ejemplo, para hacer que una imagen cambiase por otra cuando el ratón pasaba por encima. Con las nuevas versiones de CSS esto se realiza con selectores de CSS en la hoja de estilos. Ahora es posible hacer muchas cosas sin necesidad de utilizar código JavaScript, dos de ellas son las transformaciones 2D, 3D y animaciones. No solo es más fácil crear las animaciones con CSS sin requerir crear código que es más difícil de modificar sino que también ofrece mejor rendimiento.
Animaciones
Por una parte se define las propiedades CSS que cambian en la animación y por otro de definen las propiedades de la animación y a que elementos de la página se aplica.
Dos ejemplos de animación son:
|
|
Las propiedades principales de la animación al aplicarlas a un elemento de la página son:
- animation-name: animation1;, aplica la animación indicada definida con @keyframes.
- animation-duration: 5s;, determina la duración de la animación.
- animation-timing-function: linear;, aplica una función para interpolar los valores que se asignara en cada propiedad y fotograma. Los valores posibles son: linear|ease|ease-in|ease-out|ease-in-out|step-start|step-end|steps(int,start|end)|cubic-bezier(n,n,n,n)|initial|inherit.
- animation-delay: 2s;, retraso en el inicio de la animación.
- animation-iteration-count: infinite;, número de veces a repetir la animación. Los valores posibles son: number|infinite|initial|inherit.
- animation-direction: alternate;, dirección a aplicar la animación. Los valores posibles son: normal|reverse|alternate|alternate-reverse|initial|inherit;.
|
|
Con estas propiedades de animación, la definición de las propiedades que cambian en una animación y los selectores CSS es posible realizar animaciones muy curiosas con la ventaja de que al realizarlas no con JavaScript el rendimiento es mucho mejor, las transiciones muy suaves y sencillo de crear y modificar.
Transformaciones
Las transformaciones 2D permite aplicar escalado, rotación, traslación, inclinación o skew con la propiedad de transform. La lista de funciones 2D es:
- rotate(angle)
- scale(x,y)
- scaleX(n)
- scaleY(n)
- translate(x,y)
- translateX(n)
- translateY(n)
- skew(x-angle,y-angle)
- skewX(angle)
- skewY(angle)
O aplicando varias de ellas con una matriz:
- matrix(n,n,n,n,n,n)
|
|
Las funciones de transformación 3D aplican efectos 3D a los elementos.
- matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n)
- translate3d(x,y,z)
- translateX(x)
- translateY(y)
- translateZ(z)
- scale3d(x,y,z)
- scaleX(x)
- scaleY(y)
- scaleZ(z)
- rotate3d(x,y,z,angle)
- rotateX(angle)
- rotateY(angle)
- rotateZ(angle)
- perspective(n)
Estos son tres ejemplos de efectos aplicando transformaciones y animaciones, se pueden combinar ambos a la vez. Un ejemplo aplica una operación de transformación a una imagen, otro al ubicar el ratón encima empieza a rotar y otro que repite una transición de color y translación de forma infinita.
|
|
|
|