用途:在网页项目中实现高质量 UI 动效,包括入场动画、微交互、页面过渡、基于时间线的序列编排,以及结合 ScrollTrigger 的滚动驱动叙事。
主要能力:补间动画 gsap.to(targets, vars)、gsap.from、gsap.fromTo;时间线 gsap.timeline({ defaults, repeat, yoyo, paused }),可链式调用 to/from,并支持位置参数(绝对 1.2、相对 "+=0.5"、重叠 "-=0.3"、标签)。缓动支持 "power2.out"、"expo.inOut"、"elastic.out(1,0.3)"。交错动画 stagger: 0.05 或 { each, from, grid }。性能上优先使用变换属性(x、y、scale、rotation)与透明度 autoAlpha。ScrollTrigger 插件支持内联、高级配置(trigger、start、end、scrub、pin、snap、markers)及独立 ScrollTrigger.create。
使用方式:需先注册插件 gsap.registerPlugin(ScrollTrigger)。典型模式如英雄区入场交错、序列时间线、滚动钉住与 scrub 动画。React/SPA 中建议用 gsap.context() 并在卸载时 revert;必要时通过 ScrollTrigger.getAll().forEach(t => t.kill()) 清理。
限制与注意事项:避免动画布局属性(top/left/width/height)以防抖动,改用变换并添加 will-change: transform;ScrollTrigger 不触发常因触发器尺寸或滚动容器配置问题,需确保触发器存在且有高度,嵌套滚动需额外配置;字体/图片加载前测量可能造成闪烁,应在布局稳定后初始化并在图片加载后调用 ScrollTrigger.refresh()。需求不明确时需确认是否静态站点或 SPA、是否需要滚动驱动、性能与减弱动效约束。