核心动画方法

GSAP 日常 90% 的代码都落在这四个 API:tofromfromToset。它们的差别只在于「起点从哪来」。

方法起点终点适用场景
gsap.to(target, vars) 元素当前计算样式 vars 里写的值 最常用:按钮位移、淡出、滚动后滑入
gsap.from(target, vars) vars 里写的值 元素「本来」的样式 入场:从下方 40px、opacity 0 回到排版位置
gsap.fromTo(target, from, to) from 对象 to 对象 当前状态不可靠时(会被别的动画改过)需要锁死两端
gsap.set(target, vars) 立即写入 初始化、重置、无过渡的状态切换(等价 duration: 0)
1. gsap.to() — 从当前状态到目标
x 是 GSAP 对 translateX 的快捷写法,单位默认 px。 不要同时用 CSS transition 抢同一属性,会打架。
TO
gsap.to("#box1", {
  x: 400,              // 快捷属性:transform: translateX(400px)
  duration: 2,         // 秒;也可写 duration: 0.5
  ease: "power2.out"   // 先快后慢,适合「到达」类动作
});
2. gsap.from() — 从指定状态回到当前
创建 tween 的瞬间会立刻把元素放到 from 状态(immediateRender 默认 true), 然后再播到「CSS 里写死的那套外观」。适合首屏入场。
FROM
gsap.from("#box2", {
  x: 400,
  opacity: 0,
  duration: 2,
  ease: "back.out(1.4)" // 轻微过冲,入场更有弹性
});
3. gsap.fromTo() — 锁死起点和终点
第二个参数才是「动画控制项」:duration / ease / delay 都写在 to 对象里,不要写在 from 里。
FROMTO
gsap.fromTo("#box3",
  { x: 0, scale: 0.5 },                         // from:只放视觉属性
  { x: 400, scale: 1.5, duration: 2, ease: "power2.inOut" } // to:视觉 + 控制
);
4. gsap.set() — 无动画瞬间赋值
重置舞台、把元素放到屏幕外、切换 display 前先 set 初始 transform,都用它。
SET
gsap.set("#box4", {
  x: 300,
  rotation: 45,
  scale: 1.2
});

target 能传什么

类型例子
CSS 选择器".card""#hero""nav a"
DOM 节点document.getElementById("box")
数组 / NodeListgsap.to([a, b, c], { y: 20 })
普通对象gsap.to(obj, { value: 100 }) 做计数器
同一元素连续 to() 默认 overwrite 策略是 auto: 后写的动画会接管冲突属性,未冲突的属性继续播。需要「后来的完全干掉前面的」时用 overwrite: true。详见下一页 Vars。