`
yunmoxue
  • 浏览: 285007 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

JS 中 Tween 的使用

 
阅读更多
转自:http://www.cnblogs.com/cloudgamer/archive/2009/01/06/Tween.html


/**
 参数列表

t: current time(当前时间)
b: beginning value(初始值)
c: change in value(变化量//不懂看下边的解释)
d: duration(持续时间)

*/
var Tween = {
    Quad: {
        easeOut: function(t,b,c,d){
            return -c *(t/=d)*(t-2) + b;
        }
    }
}

var b=50,c=100,d=100,t=0,speed=1; //speed 步长
function Run(){
    div.style.left = Math.ceil(Tween.Quad.easeOut(t,b,c,d)) + "px";
    if(t<d){ t += speed; setTimeout(Run, 10); }
}
Run();



下面就介绍如何使用这个Tween了,首先b、c、d三个参数(即初始值,变化量,持续时间)在缓动开始前,是需要先确定好的。

举一个简单的例子,一个div要向右缓动,left初始值是50,那么b就是50,要向右移动100,那c就是100,如果知道的是目标值,例如要向右移动到150,那就把目标值150减初始值b就是变化量c了。

至于d的设置就比较灵活,只要符合t是从0向d递增(或递减)就可以了。
d跟步长配合使用来设置持续时间,例如d设置为100,如果设置步长是1,那么从0到100就有100步,即分100次来完成这个过程,步数越多那么持续时间就越长。

至于t的变化相当于时间的变化,一般是均匀变化的,每次变化都增加一个步长,当t从0递增(或递减)到d时,缓动就结束了。

要注意的是t是从0开始的,设置步长时必须确定t确实能到达d,如果上面的步长是3,那么t就永远都到不了d了。更好的处理是当t等于或超过d之后,就停止定时器并设置当前值为目标值。




效果说明:
Linear:无缓动效果;
Quadratic:二次方的缓动(t^2);
Cubic:三次方的缓动(t^3);
Quartic:四次方的缓动(t^4);
Quintic:五次方的缓动(t^5);
Sinusoidal:正弦曲线的缓动(sin(t));
Exponential:指数曲线的缓动(2^t);
Circular:圆形曲线的缓动(sqrt(1-t^2));
Elastic:指数衰减的正弦曲线缓动;
Back:超过范围的三次方缓动((s+1)*t^3 - s*t^2);
Bounce:指数衰减的反弹缓动。
ps:以上都是自己的烂翻译,希望各位修正。

每个效果都分三个缓动方式(方法),分别是:
easeIn:从0开始加速的缓动;
easeOut:减速到0的缓动;
easeInOut:前半段从0开始加速,后半段减速到0的缓动。
其中Linear是无缓动效果,没有以上效果。
分享到:
评论
1 楼 ms143014 2016-07-15  
很详细

相关推荐

    TweenJS2022最新版本(tween.js)

    TweenJS2022最新版本(tween.js) 使用方式参照文章: https://blog.csdn.net/Highning0007/article/details/123749640

    使用ArcGIS JS API与Tween.js实现图层闪烁动画效果(源码).zip

    该资源为使用arcgis js api与Tween.js实现图层闪烁动画效果的示例代码

    JS缓动Tween

    JS Tween 缓动

    tween.js例子

    tween.js例子

    Tween.jsJavaScript库

    Tween.jsJavaScript库

    前端JavaScript运动框架Tween.js

    前端JavaScript运动框架Tween.js

    tween.js 可生成平滑动画效果的js动画库

    tween.js是一款可生成平滑动画效果的js动画库。tween.js允许你以平滑的方式修改元素的属性值。它可以通过设置生成各种类似CSS3的动画效果。

    js Tween算法曲线图演示.rar

    js Tween算法曲线图演示,演示过程中可加快速度、减慢速度。Tween类型:可选择Linear Quadratic Cubic Quartic Quintic Sinusoidal Exponential Circular Elastic Back Bounce,ease类型可选择:easeIn easeOut ...

    TWeen:极简JavaScript Tween库

    TWeen.js –极简JavaScript Tween库TWeen是适用于现代浏览器的极简JavaScript Tween库。 它使用罗伯特·彭纳(Robert Penner)的缓动功能。 您不需要JQuery来使用它,但是您可以根据需要传递JQuery元素。 它是由你...

    前端项目-tween.js.zip

    前端项目-tween.js,超简单,快速和易于使用的镊子引擎,结合优化的罗伯特彭纳方程。

    tweenjs动画库配合ThreeJS使用DEMO

    tweenjs动画库配合ThreeJS使用DEMO

    详解tween.js 中文使用指南

    补间(动画)是一个概念,允许你以平滑的方式更改对象的属性。你只需告诉它哪些属性要...var tween = new TWEEN.Tween(position); // 然后告诉 tween 我们想要在1000毫秒内以动画的形式移动 x 的位置 tween.to({ x: 200

    tween.js可生成平滑动画效果的js动画库

    tween.js是一款可生成平滑动画效果的js动画库。tween.js允许你以平滑的方式修改元素的属性值。它可以通过设置生成各种类似CSS3的动画效果。

    tween24js:Tween24 for JavaScript

    tween24.js Tween24适用于JavaScript。 最新版本: 0.2.0 属性方法 X() y() xy() α() 延迟() 补间方法 补间() Struts() serial() 平行线() 等待() func() 样本 // Single Tween ...

    详解tween.js的使用教程

    本文将详细介绍tween.js的使用  概述 tween.js允许以平滑的方式修改元素的属性值。只需要告诉tween想修改什么值,以及动画结束时它的最终值是什么,动画花费多少时间等信息,tween引擎就可以计算从开始动画点到...

    tween动画演示

    tween 动画效果,图片的移动,渐隐,放大,旋转等效果

    tween.js-master.zip

    最流行的WEB动画引擎,包含打包js库,所有源码和相关说明文档。 深入探索源码是软件研发工程师的天然属性。

    Tween:tween.js

    Tween.js简介各类缓动算法,效果演示参见:如何使用参见:其中animation.js是新增,为了更简单的使用这些缓动算法,语法如下:Math.animation(form, to, duration, easing, callback);其中:form和to是必须参数,...

Global site tag (gtag.js) - Google Analytics