Combining CSS3 Transitions for Complex Animations

Combinación de transiciones CSS3 para animaciones complejas

Las transiciones animadas se pueden hacer con poco esfuerzo gracias a las transiciones CSS3 y se usan mucho hoy en día. Puede modificar diferentes características al mismo tiempo. También existe la posibilidad de jugar con los atributos que desea animar en diferentes momentos y con diferentes duraciones.

Transiciones CSS3 usando retrasos

El atributo «transiciones» conoce cuatro valores diferentes. El primer valor determina qué atributos deben animarse por transición. Mientras que «todos» simplemente anima todos los atributos (siempre que haya algo para animar), también puede optar por animar solo un atributo específico. El segundo valor define la duración de la animación en segundos y el tercer valor es responsable de la aceleración – „ease“ „ease-out“ o „ease-in“, por ejemplo. También existe la opción de definir un desplazamiento temporal. Esto hace que la transición comience después de un período de tiempo específico.

div {
  transition: all 2s ease 1s;
  border-radius: 0;
  transform: rotate(45deg);
}

div:hover {
  border-radius: 100%;
  transform: rotate(90deg);
}

En el ejemplo, los valores «border-radius» y «transform» se modifican al pasar el mouse. La animación tarda dos segundos, pero comienza con un desplazamiento de un segundo.

Transiciones con atributos animados al mismo tiempo

Combinación de múltiples transiciones CSS3

La mayoría de ustedes probablemente conocen la forma presentada aquí. Desafortunadamente, tiene la desventaja de que la transición para todos los atributos – «borde-radio» y «transformación» en este caso – se reproducen al mismo tiempo. Sin embargo, un marcado ligeramente modificado le permite asignar una duración de animación individual, así como un retraso individual a cada uno de ellos.

div {
  transition: transform 0.5s ease, border-radius 1s ease 0.5s;
  border-radius: 0;
  transform: rotate(45deg);
}

En el segundo ejemplo, los valores personalizados se asignan a cada atributo que se supone que debe animarse a través de la «transición». Los valores están separados por comas. Aquí, la animación del atributo „border-radius“ comienza medio segundo después del inicio de la animación del atributo „transform“.

kombinierte-transitions2Transiciones con atributos animados independientemente unos de otros

De esta manera, puede crear efectos de desplazamiento completamente complejos sin usar JavaScript, así como sin anidar elementos HTML y equipar cada uno con un efecto de transición. Además, el orden de las animaciones permanece igual incluso cuando se invierte el movimiento. Aquí, „transformar“ se anima primero, seguido de „border-radius“.

Ventaja sobre „@keyframes“ y „animación“

Por supuesto, también es posible definir animaciones tan complejas con el atributo CSS3 „animación“ en combinación con la regla „@keyframes“. Las transiciones, sin embargo, tienen una ventaja, ya que la transición animada se adapta automáticamente cuando se cambia la clase o pseudoclase. Esto significa que cuando deja el estado de desplazamiento antes de completar la animación de la transición, la animación vuelve automáticamente a su apariencia original. Esto no sucede cuando se usa „animación“ y „@keyframes“. Sin embargo, todas las transiciones presentadas tienen sus límites, por ejemplo, cuando desea animar diferentes efectos de «transformación» independientemente unos de otros, como «escala()» y «rotar()». Después de todo, ambos están definidos por el mismo atributo. Si desea animaciones independientes, deberá usar «@keyframes» y «animación».

Ejemplo en Codepen

(dpe)

#Combinación #transiciones #CSS3 #para #animaciones #complejas

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *