官网地址: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^2)
Cubic ==> 三次方的缓动
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()