实例控制与全局工具

gsap.to() 的返回值是 Tween。存下来才能暂停、倒放、改速度。 在 React/Vue 里还要用 gsap.context() 统一清理。

Tween 实例方法
CTRL
const tween = gsap.to("#ctrlBox", {
  x: 420,
  rotation: 360,
  duration: 3,
  paused: true,  // 先造好,再手动 play
  ease: "none"
});

全局方法

API用途
gsap.killTweensOf(target)停掉某元素上所有 tween
gsap.getProperty(el, "x")读当前动画值(比 getComputedStyle 准)
gsap.delayedCall(s, fn)受 timeScale / 全局暂停影响的延时,比 setTimeout 更跟时间轴
gsap.quickTo(el, "x", { duration: 0.4 })高频更新(鼠标跟随)专用,避免每帧 new tween
gsap.defaults({ ease: "power2.out" })改默认 vars
gsap.globalTimeline.pause()整页动画暂停(切后台、开模态)
gsap.context(fn, scope)把里面创建的动画收进可 revert() 的桶
gsap.matchMedia()按断点创建/销毁动画,自带 revert
quickTo:拖动鼠标(舞台内)
每次 mousemove 只更新目标值,内部复用同一个 tween,比反复 gsap.to 轻。
QT
const xTo = gsap.quickTo("#ball", "x", { duration: 0.4, ease: "power3" });
const yTo = gsap.quickTo("#ball", "y", { duration: 0.4, ease: "power3" });
stage.addEventListener("pointermove", (e) => {
  const r = stage.getBoundingClientRect();
  xTo(e.clientX - r.left - 32);
  yTo(e.clientY - r.top - 32);
});

context 示例(注释即可,本页不跑 React)

// React useLayoutEffect
let ctx;
useLayoutEffect(() => {
  ctx = gsap.context(() => {
    gsap.from(".card", { y: 40, stagger: 0.08 });
  }, rootRef);          // 选择器相对这个根节点
  return () => ctx.revert(); // 卸载时还原内联样式并 kill
}, []);