前端动画库GSAP 入门学习详解

简介:

GSAP的全名是 GreenSock Animation Platform

一直发展到今天已经是 3.x 版本,这是一个适用于现代浏览器的专业 Javascript 动画库

超过1100万个网站,其中包括超过50%的获奖网站!主要品牌都使用 GSAP 

官网地址如下:

GSAP 3 Is Available Now! - Blog - GreenSock

Vue里面 基于侦听器的动画,也是借助于GSAP。

GSAP 优点:

  • 疯狂的快
  • 异常的强大
  • 兼容性好
  • ······

缺点:

  • 动画过多

GSAP基本使用

官网地址: https://greensock.com/gsap/

文档地址: https://greensock.com/get-started/

核心语法

GSAP 远在 flash 繁荣的时代就存在,所以核心是补间动画

GSAP 则是补间动画,主要有4个分类:

  • gsap.to()从元素的起始值开始,动画到我们指定的结束值
  • gsap.from() 反过来。 我们指定起始值,动画到结束值
  • gsap.fromTo() - 我们定义起始值和结束值。
  • sap.set() - 立即设置属性 (无动画)

常见属性

GSAP CSS 解释
x: 100 transform:translateX(100px) 水平移动
y: 100 transform:translateY(100px) 垂直移动
xPercent:-50 transform:translateX(-50%) 水平移动(元素宽度的百分比)
yPercent:-50 transform:translateY(-50%) 水平移动(元素高度的百分比)
rotation:360 transform:rotate(360deg) 旋转(度)
scale: 2 transform: scale(2, 2) 增大或减小大小
delay: 1 动画延迟时间单位是秒
duration : 3 动画持续时间 单位是秒
repeat 动画重复多少次
yoyo 悠悠球 如果为true,则补间每隔一次重复将朝相反的方向运行。(像溜溜球)默认值:假
ease ease
ease 交错,每个目标的动画开始之间的时间(以秒为单位)(如果提供了多个)


时间线 timeline

时间线是创建易于调整、有弹性的动画序列的关键。将补间添加到时间线时,默认情况下,补间将按添加顺序依次播放简单理解: 时间线可以让多组动画编排动作,从而控制整个序列。

位置参数

指定一个参数来构建动画时机时间的序列,简单理解就是多组动画之间的执行时机 

let tl = gsap.timeline()
// 从时间轴的1秒开始(绝对)简单理解,1秒钟之后触发
tl.to(".green",{ x: 600,duration: 2 },1);

// 在上一个动画的开始处插入,简单理解,上个动画开始,我也开始
tl.to(".purple",{ x: 600,duration: 1 },"<");
// 在上一个动画的开始处插入, 简单理解,上个动画结束,我才开始 (默认的)
// tl.to(".purple",{ x: 600, duration: 1 },">");

// 在时间线结束后1秒插入(间隔) 简单理解: 上个动画结束后1秒我开始
tl.to(".orange", { x: 600,duration: 1 },"+=1");
// 在时间线结束后1秒插入(间隔) 简单理解:上个动画结束前1秒,我就开始
// tl.to(".orange",{ x: 600,duration: 1},"-=1");