gsap.to(".item", { x: 120 })Animar haciaCuando conoces el estado final.
Laboratorio 03 · Movimiento
Una animación útil orienta la atención y explica una relación. Edita y ejecuta el código para observar cómo distancia, duración, easing y secuencia cambian la sensación.
Guía de consulta
Cada ejemplo indica qué hace y cuándo conviene usarlo. Puedes copiarlo al laboratorio y modificarlo.
gsap.to(".item", { x: 120 })Animar haciaCuando conoces el estado final.
gsap.from(".item", { opacity: 0 })Animar desdePara entradas cuyo DOM ya está en estado final.
gsap.fromTo(target, from, to)Control totalFijar inicio y final explícitamente.
duration: 0.8TiempoControlar velocidad y jerarquía.
ease: "power2.out"SensaciónDesacelerar naturalmente al llegar.
delay: 0.2RetrasarCoordinar con otra acción.
stagger: 0.12EscalonarRevelar una colección en orden.
gsap.timeline()SecuenciarCrear coreografías controlables.
timeline.pause()PausarDar control a la persona usuaria.
timeline.reverse()RevertirCerrar con la animación inversa.
gsap.context(...)AcotarLimitar selectores dentro de React.
context.revert()LimpiarEvitar animaciones huérfanas al desmontar.
Ruta completa
Una animación describe cómo cambia una propiedad entre estados. Usa transformaciones como x, y, scale y rotation porque suelen ser más eficientes que modificar layout.
gsap.to(".card", { x: 160, duration: 1 });Duración y easing modifican cómo se percibe el mismo desplazamiento. Un movimiento rápido puede orientar; uno elástico puede expresar juego.
gsap.to(".card", {
y: 80, duration: .8, ease: "power2.out"
});Una timeline relaciona acciones en el tiempo. Es preferible a coordinar múltiples retrasos independientes porque conserva una secuencia controlable.
const tl = gsap.timeline();
tl.to(".title", { y: 0 })
.to(".card", { opacity: 1 });Stagger aplica una animación a varios elementos con una separación temporal. La secuencia puede revelar orden, jerarquía o relación.
gsap.from(".item", {
y: 24, opacity: 0, stagger: .12
});El movimiento puede responder a una acción, pero no debe bloquear el contenido. Los efectos de scroll requieren inicio, fin y comportamiento claramente definidos.
button.addEventListener("click", () => {
gsap.to(".panel", { scale: 1 });
});En React, limpia animaciones al desmontar componentes. Respeta prefers-reduced-motion y evita animar grandes superficies o propiedades costosas sin necesidad.
const ctx = gsap.context(() => { /* motion */ });
return () => ctx.revert();Antes de continuar