动画类库(3)补间动画tween.js

2,788 阅读2分钟

官网地址:www.createjs.com/tweenjs

源码地址:www.createjs.com/tweenjs

简介:

tween.js 是使用JavaScript中的一个简单的补间动画库,支持数字、对象的属性和CSS样式属性的赋值。tween.js以平滑的方式修改元素的属性值,需要传递给tween要修改的值、动画结束时的最终值和动画花费时间(duration),之后tween引擎就可以计算从开始动画点到结束动画点之间值,从而产生平滑的动画效果。

使用:

① tweenjs 的引入

(通过npm安装)
npm install tween.js
(可以使用script标签引入)
<script src="/libs/tween/Tween.js"></script>

② 给出一个对象的原始位置和目标位置 例:原始位置:(100,0)

var position = { x: 100, y: 0 }

目标位置:(200,0)

var target = { x : 400, y: 50 };

③ 创建Tween对象并激活并开始动画 (其中2000表示从开始位置到目标位置需要2秒,start()激活)

new TWEEN.Tween(position).to(target, 2000).start()

④ 控制 tween 动画

start()和stop()分别用来控制tween动画的开始和结束。对于已经结束和没有开始的动画,stop 方法不起作用。

start()可以方法接收一个时间参数,若使用了该参数,tween动画将在延迟该时间数后才开始动画,否则他将立刻开始动画。

update()执行动画的更新。

chain()制作多个多行,例如一个动画在另一个动画结束后开始,可以通过 chain 来实现。

//tweenB 在 tweenA 之后开始动画,故可以制作一个无线循环的动画
tweenA.chain(tweenB); 
tweenB.chain(tweenA);

repeat()制作循环动画,优于 chain,接收一个用于描述循环次数的参数.

tween.repeat(10);
tween.repeat(infinity);
delay()用于控制动画之间的延迟
tween.delay(1000);
tween.start()

⑤ 回调函数

(可以在每次tween循环周期的指定时间点调用自定义的函数)
onStart:tween动画开始前的回调函数
onStop:tween动画结束后的回调函数
onUpdate:在tween动画每次更新后执行
onComplete:在tween动画全部结束后执行

⑥ easing函数

动画运动算法(缓动函数)
Linear ==> 线性匀速运动效果
Quadratic ==> 二次方的缓动(t^2Cubic ==> 三次方的缓动
Quartic ==> 四次方的缓动
Quintic ==> 五次方的缓动
Sinusoidal ==> 正弦曲线的缓动
Exponential ==> 指数曲线的缓动
Circular ==> 圆形曲线的缓动
Elastic ==> 指数衰减的正弦曲线缓动
Back ==> 超过范围的三次方的缓动
Bounce ==> 指数衰减的反弹缓动
缓动方式(效果)
easeIn(In) ==> 加速,先慢后快
easeOut(Out) ==> 减速,先快后慢
easeInOut(InOut) ==> 前半段加速,后半段减速

使用公式

.easing(TWEEN.Easing.easing函数.easing类型)

因为TWEEN的每一个函数都返回tween对象,所以可以链式调用。

var position = { x : 0, y: 300 };
var target = { x : 400, y: 50 };
New TWEEN.Tween(position).to(target,2000).easing(TWEEN.Easing.Linear.None).start()