Animaciones CSS: Control de Duración e Iteración
Clase 6 de 12 • Curso de Animaciones con CSS
Contenido del curso
Clase 6 de 12 • Curso de Animaciones con CSS
Contenido del curso
Carlos Eduardo Gomez García
Estefany Aguilar
Oriol Fernando Palacios Durand
Gabriel Gomez
Bryan Gama Solórzano
Juan Gustavo Daza Martínez
Carlos Rodríguez
Irving Juárez
Fabian Flores
Octavio Villavicencio Cruz
Juan Gustavo Daza Martínez
Randy Ochoa
Cristian David Casallas Velandia
Jorge Arias Argüelles
JOSE MARIA SUAREZ GIESE
Juan Pablo Jimenez
Tomas Salina
Juan Muñiz
Gilbert Ardila
Remix Zapata
Abelino Suarez
Stiven David Bautista Sanjuanelo
David Cancino
Gustavo Pino
Rodrigo Rojas Candia
Alejandro Ramos
Estas propiedades son de las más fáciles 👀. Simplemente debes decirle cuánto va a durar la animación y cuántas veces se va a repetir esa animación, es todo 👀. Únicamente con esas dos propiedades ya tienes suficiente paa que una animación empiece a correr :D . Otro ejemplo de animación sencillo, además de el de la clase, podría ser el lanzamiento de algún objeto:
!Throw Animation
Cuando lanzamos un objeto es normal que a veces gire y se eleve un poco en el aire, para hacer una animación similar, solo necesitariamos 3 puntos:
Punto A: El inicio de la animación, el objeto tendrá un left inicial y un transform inicial:
0% { left: 50px; transform: rotate(0deg); }
Punto B: A la mitad de la animación el objeto debió elevarse un poco, por tanto le cambiamos su propiedad en bottom:
50% { bottom: 60%; }
Punto C: Al final de la animación el objeto debió caer y debió de haber dado unas cuantas vueltas, también debió de haberse movido, por lo que modificamos las propiedades left y transform, el bottom no lo modificamos porque por defecto volverá a su estado inicial:
100% { left: 1080px; transform: rotate(360deg); }
Al final nuestro Keyframe podría quedar así y esto simularía un objeto que es lanzado 👀.
@keyframes throw { 0% { left: 50px; transform: rotate(0deg); } 50% { bottom: 60%; } 100% { left: 1080px; transform: rotate(360deg); } }
Obviamente necesitariamos tener un objeto al cual aplicarle la animación, este objeto debe tener un position: absolute; con respecto al contenedor padre, ya hice la tarea, así que pueden ver el código completo de esta animación aquí 👇👀.
.
Animación del lanzamiento de un objeto
.
Casi todos son estilos para que se vea más bonito y para preparar los elementos en su posición incial, pero el proceso de animado te lo acabo de explicar aquí :D
Wow !!! Este es un excelente complementoooo... Gracias infinitasss 🐰💚 Me encanta !!!
El curso debería contener más ejemplos como estos, ayuda a entender mucho mejor todas las propiedades
En lo particular prefiero usar la propiedad transform para animar, ya que son más optimas para esto y hasta es más sencillo. El código quedaría así:
@keyframes blink { 0% { transform: scale(1, 1); } 5% { transform: scale(1, 0.2); } 10% { transform: scale(1, 1); } }
Hey! Usé los mismos números y luego vi tu comentario. 😅La única diferencia fue que podrías usar scaleY para modificar solamente ese eje y dejar el eje X intacto (te ahorrarías colocarle el 1).
@keyframes blink { 0% { transform: scaleY(1); } 5% { transform: scaleY(0.2); } 15% { transform: scaleY(1); } }
Buen aporte! Y así como dices, es mejor usar transform! Gracias
Wow tienes toda la razón y se utiliza mejor en el tema de CPU de css y su costo de renderización
Creo que también se puede usar porcentaje en el traslate para evitar modificarlo cada vez que necesitemos cambiar el tamaño de los ojos:
5% { height: 2px; transform: translate(0, 50%); }
Resumen de la clase
En esta clase vimos como:
animation-name: blink;)animation-duration: 2s;)animation-iteration-count: infinite;). Todo junto esto se ve algo como:
.clase{ animation-name: blink; animation-duration: 2s; animation-iteration-count: infinite; } @keyframes blink{ 10%{ @code } 20%{ @code } 30%{ @code } }
. Esto fue lo que yo hice .
Notas de la clase
Retomando el tema de que le cueste menos al navegador propongo
@keyframes blink { 0%{ transform: scaleY(1); } 5%{ transform: scaleY(.125); } 10%{ transform: scaleY(1); } }
es correcto hermano
Muy buena forma de resolverlo y muy buena para el navegador como dices
Vamos avanzando 🔥
Me emocioné cuando vi a mis conejos parpadear, lo subí a mis historias, se lo mandé a mi novia, jajajaja, es increible la verdad
6.-Animation duration
Ahora vamos a necesitar poner a parpadear a los ojos, para esto necesitamos un tiempo para que parpadeé y que sea infinito. Para esto vamos a usar dos propiedades principales, las cuales son:
El codigo de la clase se puede resumir y optimizar utilizando transform:
@keyframes blink { 0% { transform: scaleY(1); } 5% { transform: scaleY(0.25); } 10% { transform: scaleY(1); } }
Me encanta como progreso la maestra entre los cursos anteriores. Este es mi resultado. .
esta a nimación da un efecto de cerrar y abrir el ojo
@keyframes blink{ 0%{ opacity: 0; } 5%{ opacity: 0.5; } 10%{ opacity: 1; } }
Así va quedando el mío:v
mi proyecto hasta el momento , aprovechando la fecha,
Yo personalmente reemplace el hight por la propiedad scaleY() en la animación por motivos de rendimiento.
mas de la mitad del curso es ilustración con CSS, no animación.
Wow increible!!!
Estas son las propiedades de las animaciones más fáciles para la animación
Estos son los estilos que le dí, logre el parpadeo con aspec-ratio y modificando el top un poquito :D
.head\_\_eye{ width: 8px; aspect-ratio: 1/1; background-color: black; border-radius: 100%; position: absolute; margin: 0 auto; right: 0; left: 0; top: 14px; animation-name: blink; animation-duration: 2s; animation-iteration-count: infinite;} @keyframes blink{ 0%{ aspect-ratio: 1/1; top: 14px; } 5%{ aspect-ratio: 4/1; top: 18px; } 10%{ aspect-ratio: 1/1; top: 14px; }}