GSAP
约 387 个字 97 行代码 预计阅读时间 3 分钟
GSAP 是一个强劲有力的动画工具,具有运行超快、超鲁棒、可兼容的特点
这里 有一些相关 Sample
Getting Started
Installation
-
基于 CDN 引入(单文件战士友好)
-
基于 NPM 安装,并在 React 中引入
Create Animation
-
首先,你需要在 HTML 里添加需要驱动的对象(废话)
-
OK,那么来塞动画罢!
1 Timline Animation
关键帧动画啊,关键帧动画。复活罢,我的 Flash!
Tween
-
上面的基础动画在 GSAP 中被称为 "tween",可以通过以下四种方式定义
Method Desc gsap.to指定了动画的“终点” gsap.from指定“终点”信息,然后“挪回起点” gsap.fromTo同时指定动画的起止点信息 gsap.set立即 重设属性 fromTo形式的定义如下(感觉没啥意义,from 可以写在 base CSS 里): -
Target:除
QuerySelectorALL形式的选择器外,GSAP 还支持多种不同的选择方式 -
GSAP 支持驱动多种属性,这里 有详细的配置说明
gsap.to( ".box", { /* play config */ yoyo: true, // running alternative repeat: 3, // 可以限制 yoyo 次数, -1=unlimited repeatDelay: 0, // repeat 间 delay duration: 3, stagger: 0.5, // list item 间的执行间隔 /* Ease: * - 有 in / out / inOut 三种 * - 有多种可选曲线,详见 https://gsap.com/docs/v3/Eases */ ease: 'power1.out', // 不会出错的选择 /* Animation: * - 基本是改变 opacity & transform * - 基于 transform 的动画会比基于 Top-Left 的方式丝滑 */ opacity: 0, x: 200, // translateX(200px) /* Style */ borderRadius: '', backgroundColor: '', // 但不能用 hue ... /* Callback Function * onStart / onComplete / onReverseComplete / onUpdate / onRepeat */ onComplete: () => {} } ) -
可动对象摩多摩多
-
GSAP 以同样的方式操作 SVG 元素,基于
attr项甚至能操作viewBox本身 -
GSAP 同时支持对自定义结构体的变换操作(离谱)
意义:Canvas / ThreeJS 没办法直接挪动对象,会需要从结构体
(x,y)中读取坐标
-
-
更精细的播放控制
Timeline
-
手动给 tween 设置 delay 还是太痛苦面具了,所以我们端上了:
-
更加优雅的写法:如何避免设置中途 delay 导致的向后重叠?