GSAP 动画参考文档,面向 HyperFrames 使用场景,按用途整理 GSAP 的核心 API 与最佳实践。
用途:本资料是一份 GSAP 动画用法速查参考,帮助在 HyperFrames 中编写动画,涵盖补间(Tween)、时间线(Timeline)、缓动、响应式适配与性能注意事项。
主要能力:
- 核心补间方法:gsap.to() 从当前状态过渡到目标值;gsap.from() 从给定值过渡到当前状态(入场);gsap.fromTo() 显式指定起止值;gsap.set() 立即应用(时长为 0)。属性名使用 camelCase。
- 常用参数:duration(默认 0.5 秒)、delay、ease(默认 "power1.out",可选 "power3.inOut"、"back.out(1.7)"、"elastic.out(1, 0.3)"、"none" 等)、stagger(数字或 { amount, from }、{ each, from } 对象)、overwrite、repeat(-1 为无限)、yoyo、onComplete/onStart/onUpdate 回调、immediateRender。
- 变换与 CSS:建议使用 GSAP 变换别名而不直接写 transform 字符串,如 x/y/z、xPercent/yPercent、scale/scaleX/scaleY、rotation、rotationX/rotationY、skewX/skewY、transformOrigin;autoAlpha 优于 opacity(为 0 时同时设置 visibility: hidden);支持 CSS 变量、svgOrigin(仅 SVG,不与 transformOrigin 同用)、方向性旋转(如 "360_cw"、"-170_short"、"90_ccw")、clearProps 和相对值("+=20"、"-=10"、"*=2")。
- 基于函数的值:属性可写成 (i, target, targets) => ... 的形式。
- 缓动:内置 power1–power4、back、bounce、circ、elastic、expo、sine,各含 .in/.out/.inOut。
- 默认值:gsap.defaults({ duration, ease })。
- Tween 控制:pause()、play()、reverse()、kill()、progress()、time()。
- gsap.matchMedia():仅在媒体查询匹配时执行初始化,不匹配时自动回退,可用于响应式与 prefers-reduced-motion 无障碍适配。
- 时间线:gsap.timeline() 创建,支持 defaults、paused、repeat、yoyo;位置参数可为绝对时间(1)、相对("+=0.5"、"-=0.2")、标签("intro"、"intro+=0.3")与对齐("<"、">"、"<0.2");支持 addLabel()、play("outro")、tweenFromTo();可嵌套时间线并用 add() 挂载。
- 性能建议:优先动画变换与透明度以留在合成层;避免在可用变换实现时动画 width/height/top/left;will-change: transform 仅用于实际动画的元素;频繁更新场景使用 gsap.quickTo();用 stagger 代替大量带手动延迟的独立 Tween;及时暂停或销毁屏幕外动画,不再需要时 kill。
使用方式:资料以代码片段示例说明各 API 的调用方式,例如用常量保存 tween 或 timeline 返回值以便控制播放,在时间线构造函数中传入 defaults,使用 addLabel() 标注序列。参考资料 references/effects.md 按需加载,包含打字机文字、音频可视化等现成效果模式。
适用场景:需要在 HyperFrames 管线中编排动画序列、实现入场与过渡、响应式动效和性能敏感动画的前端与动效开发。
限制与避免事项:不要在 DOM 存在前创建 Tween;不要在同一 SVG 元素上同时使用 svgOrigin 与 transformOrigin;不要用 delay 串联本应由时间线序列化的动画;不要跳过清理。资料未提供安装命令、版本信息、许可与收费情况,暂未提供。