Clone 01
Hover
Reveal
Efecto agency clásico. Hover sobre un item → imagen aparece y sigue el cursor. Inspirado en Basement Studio y Locomotive.
gsap.quickTo · mouseenter · mousemove
- 01 Identidad VisualBranding →
- 02 Plataforma DigitalProducto →
- 03 Campaña OrgánicaMotion →
- 04 Sistema de DiseñoUI/UX →
- 05 Instalación SonoraExperimental →
Técnica 02 — Cursor magnético
El botón atrae el cursor
hacia su centro.
mousemove calcula la distancia del cursor al centro del botón
y lo desplaza proporcionalmente. mouseleave regresa con
back.out.
quickTo — el truco
gsap.quickTo crea una función reutilizable que
actualiza el destino de un tween en cada frame sin crear un tween nuevo.
Mucho más eficiente que gsap.to en eventos mousemove.
// ❌ Ineficiente — crea un tween por frame el.addEventListener("mousemove", (e) => { gsap.to(cursor, { x: e.clientX }); }); // ✅ quickTo — un tween, destino actualizable const xTo = gsap.quickTo(cursor, "x", { duration: 0.4, ease: "power3", }); el.addEventListener("mousemove", (e) => { xTo(e.clientX); // actualiza el destino });
Efecto magnético
Calcular el offset del cursor respecto al centro del elemento y desplazar el botón proporcionalmente. La fuerza (0.35) controla cuánto se mueve.
btn.addEventListener("mousemove", (e) => { const rect = btn.getBoundingClientRect(); const x = e.clientX - rect.left - rect.width / 2; const y = e.clientY - rect.top - rect.height / 2; gsap.to(btn, { x: x * 0.35, y: y * 0.35, duration: 0.4, ease: "power2.out", }); }); btn.addEventListener("mouseleave", () => { gsap.to(btn, { x: 0, y: 0, duration: 0.7, ease: "back.out(2)", }); });
siguiente
05 — Three.js Geometría