`
yunmoxue
  • 浏览: 289343 次
  • 性别: 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)

    如果使用的是最新版本,确保引用的是tween.js-master目录中的`tween.min.js`文件。 ```html &lt;script src="path/to/tween.min.js"&gt; ``` 2. 创建Tween对象:接着,创建一个Tween对象,并指定要改变属性的对象。例如...

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

    在本文中,我们将深入探讨如何使用ArcGIS JavaScript API(JS API)与Tween.js库来创建图层闪烁动画效果。这是一个非常实用的技术,特别是在地理信息系统(GIS)应用中,可以吸引用户的注意力或者突出显示特定的地理...

    tween.js例子

    在提供的"index.html"文件中,我们可以预期看到一个使用Tween.js的简单示例。通常,这个例子会包含以下步骤: 1. **引入库**:首先,在HTML文件中通过`&lt;script&gt;`标签引入Tween.js库。 ```html &lt;script src="Tween....

    tweenjs动画库配合ThreeJS使用DEMO

    在本文中,我们将深入探讨如何将TweenJS动画库与Three.js结合使用,通过一个实际的DEMO来展示这种结合的应用。TweenJS是一个轻量级的JavaScript库,它提供了平滑的缓动效果,用于对象属性的过渡动画。而Three.js则是...

    JS缓动Tween

    在JS Tween中,我们通常会使用一些库,如GSAP (GreenSock Animation Platform)、TweenMax、TweenLite等,它们提供了丰富的功能和简单的API来创建复杂的动画。不过,也可以自定义编写缓动函数来满足特定需求。 缓动...

    前端项目-tween.js.zip

    Tween.js 是一个专为前端开发者设计的轻量级动画库,它简化了在JavaScript中创建平滑、动态的过渡效果。这个库的核心是基于罗伯特·彭纳(Robert Penner)的缓动方程,这些方程提供了各种动画效果,如淡入淡出、平移...

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

    tween.js不仅适用于CSS3动画的模拟,还可以用于处理任何可变的JavaScript对象属性,如SVG图形、Three.js中的3D对象、甚至游戏中的角色移动等。 ### 示例代码 在提供的压缩包文件中,`index`系列的HTML文件可能包含...

    tween.js-master.zip

    为了充分利用tween.js,开发者不仅需要掌握基本的JavaScript知识,还需要了解如何在Web环境中创建和操作DOM元素,以及如何将动画与用户交互结合。通过研究源码,开发者可以学习到如何优化性能,处理异步操作,以及...

    详解tween.js 中文使用指南

    tween.js是一套使用JavaScript编写的开源补间动画库,它允许开发者以简单的方式创建动画效果。 ### 补间动画基本概念 补间动画的实现原理是通过计算两帧之间的属性变化值来实现平滑过渡。开发者只需指定属性的起始...

    使用three.js_tween.ts搭建的地铁门3D模型,在html中引入了javascript代_3

    使用three.js_tween.ts搭建的地铁门3D模型,在html中引入了javascript代_3DSubwayDoor

    Tween.jsJavaScript库

    Tween.jsJavaScript库

    Mootools 1.2教程 Fx.Tween的使用

    在Mootools库中,Fx.Tween是用于实现平滑动画效果的一个重要组件。本教程将深入探讨如何使用Fx.Tween来为网页元素添加动态变换效果,提升用户体验。 首先,理解Fx.Tween的基本概念。Tween,即“渐变”,它允许你在...

    前端JavaScript运动框架Tween.js

    前端JavaScript运动框架Tween.js

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

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

    AS3中的TWEEN类

    在使用"greensock-tweening-platform-as3"压缩包时,你需要将库文件导入到你的AS3项目中,并根据文档或者示例代码来创建和控制Tween对象。例如,创建一个简单的平移动画,你可以使用以下代码: ```actionscript ...

    用tween.js技术实现的打开盒子的动画

    `tween.js`是JavaScript库,专为添加平滑的缓动动画而设计,它可以与`three.js`一起使用,`three.js`是一个强大的3D库,用于在浏览器中创建复杂的3D场景。在"用tween.js技术实现的打开盒子的动画"项目中,我们将深入...

    Tween 模拟缓动效果

    在JavaScript世界中,jsC的Tween插件为开发者提供了简单易用的API来实现这种缓动效果。下面将详细探讨Tween的核心概念、工作原理以及如何使用jsC的Tween插件。 一、Tween的概念与应用 Tween,源自英文“in-between...

    tween自动动画

    在JavaScript中,有许多流行的Tween库,如GSAP(GreenSock Animation Platform)和 Tween.js。GSAP 是一款高性能、灵活且功能丰富的动画库,支持多种浏览器和环境,包括浏览器、Node.js、React、Vue等。Tween.js则是...

    js Tween算法曲线图演示.rar

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

Global site tag (gtag.js) - Google Analytics