gsap动画的简单使用
介绍
最近突然需要写一些包含多种动画的首页,偶然找到了gsap,发现是真的好用,这里对其一些api做下简单介绍。
正文
gsap是一个javascript动画库,可以让开发者通过简单的api完成非常复杂的动画,包含非常多种类型的动画的实现,比如css3动画,svg动画以及canvas、webgl等。
官网给出了大量的示例代码,可以前往查看
但是它的缺点就是有些功能是付费的🤷🏻♀️,比如
SplitText、DrawSvg等功能,他们能实现非常炫酷的动画效果,有兴趣的可以自行购买使用。(反正我不买😺)
- 以下的介绍全部都是gsap3的内容。
使用
本次使用大概用到了以下几个api:to、from、timeline。
用到的插件为:ScrollTrigger、TextPlugin、MotionPathPlugin
插件
使用的插件都需要提前注册。
1 | |
ScrollTrigger
ScrollTrigger为滚动操作的关联动画,用户可以根据滚动实现相关的动画。
1 | |
TextPlugin
TextPlugin为一些文字动画的插件,我理解的是文字动画的基础版。
暂时没有用到啥特殊的配置。
官网例子
MotionPathPlugin
MotionPathPlugin为路径动画,可以通过svg的path实现相关的动画。
1 | |
to
表示元素从当前状态转换为to指定的一些动画状态。
比如,将元素移动到(100, 100),并且opacity从1到0。
1 | |
下面介绍其中一些常用的属性,与下面from方法的参数基本相同。
1 | |
from
与to相反,表示元素从from状态转为元素当前状态。
timeline
timeline可以理解成上述api的一个集合。
有时可能需要按照时间顺序,按顺序的执行一系列的动画任务,这将是很有帮助的。
比如一个矩形元素,首先x移动到100,接着y移动到100,即以下代码:
1 | |
其他
gsap的动画能力非常的强,但是也有限制性,以下为本人观点,不一定正确:
其实现动画的css能力与transition有非常大的关系,只有能响应transition的属性才能形成动画,比如width、height、backgroundColor、scale等。
但是有些属性是无法响应的,比如display,当设置其从block变为none时,为瞬间变化,无动画效果。
结束
gsap的功能非常的强大,以上使用的功能只是皮肤,各位可以自己去琢磨。
顺便看下本人使用的效果:gh-pages或私人服务器。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!