tween.js的动画效果

实现动画可以用好多种的方法,今天来看看用tween.js插件是如何实现动画效果的。

 tween.js的使用
  1.下载
  2.引入
  3.使用tween.js语法

需要哪些条件来做运动 1.初始位置  2.目标点

缓动函数
  1.linear 匀速
  2.Quad 二次方缓动效果
  3.Cubic 三次方缓动效果
  4.Quart 四次方缓动效果
  5.Quint 五次方缓动效果
  6.Sine  正弦缓动效果
  7.Expo  指数缓动效果
  8.Circ  圆形缓动函数
  9.Elastic 指数衰减正弦曲线缓动函数
  10.Back  超过范围的三次方的缓动函数
  11.Bounce 指数衰减的反弹曲线缓动函数
每种缓动函数都由三种效果:
  1.easeIn  加速
  2.easeOut 减速
  3.easeInOut  先加速后减速
  注:linear 只有一种效果匀速


Tween.缓动函数名.缓动效果名(t,b,c,d);


  t:当前已经运动的时间  b:初始位置  c:变化的值  d:总步数  总时间

我们来举个例子吧!

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6     <style type="text/css">
 7
 8        #div1 {
 9              width: 100px;
10              height: 100px;
11              background: red;
12              position: absolute;
13              left: 100px;
14              top: 200px;
15        }
16
17     </style>
18 </head>
19 <body>
20     <div id=‘div1‘></div>
21     <!--移入tween.js-->
22     <script src=‘tween.js‘></script>
23     <script type="text/javascript">
24
25          // 获取元素
26          var oDiv = document.getElementById(‘div1‘);
27          var iLeft = 100;   // 初始位置
28          var timer = 0;     //d:总步数  总时间
29
30
31         // 先准备好要传入的四个参数
32         b = iLeft;  //b:初始位置
33         t = 0;      //t:当前已经运动的时间
34         c = 500;    //c:变化的值
35         d = 20;     //d:总步数  总时间
36         timer = setInterval(function() {
37            t++;
38            if (t >= d) {
39                 clearInterval(timer);
40            }
41             oDiv.style.left = Tween.Linear(t, b, c, d) + ‘px‘; //匀速运动
42         }, 30);
43
44
45
46     </script>
47 </body>
48 </html>

移动前:

移动后:

再给大家分享一个开关门的动画效果。
  1 <!DOCTYPE html>
  2 <html>
  3 <head lang="en">
  4     <meta charset="UTF-8">
  5     <title></title>
  6     <style>
  7         *{margin: 0;padding: 0}
  8         div{position: relative;width: 800px;height: 400px;overflow: hidden;}
  9         li img{width: 800px;height:400px;}
 10         ul{list-style: none;position: absolute;}
 11         ul li{position: absolute;}
 12         #btn1{margin-left: 310px;width: 80px;height: 30px;}
 13         #btn2{margin-left: 20px;width: 80px;height: 30px;}
 14         #li1{width: 399px;height: 400px;background-color: darkgrey;
 15             border-right:1px red solid;  }
 16         #li2{width: 399px;height: 400px;background-color: darkgrey;margin-left: 400px; border-left:1px red solid;}
 17     </style>
 18 </head>
 19 <body>
 20 <div id="div">
 21     <ul>
 22         <li><img src="img4.jpg" alt=""/></li>
 23         <li id="li1"></li>
 24         <li id="li2"></li>
 25     </ul>
 26 </div>
 27 <button id="btn1">开门</button>
 28 <button id="btn2">关门</button>
 29 </body>
 30 <script type="text/javascript" src="tween.js"></script>
 31 <script type="text/javascript">
 32     var div=document.getElementById("div");
 33     var li1=document.getElementById("li1");
 34     var li2=document.getElementById("li2");
 35     var btn1=document.getElementById("btn1");
 36     var btn2=document.getElementById("btn2");
 37
 38     timer=null;
 39     timer1=null;
 40     btn1.onclick=function() {
 41 //        左开门
 42         fun();
 43         function fun() {
 44             var t = 0;          //t:当前已经运动的时间=== 0
 45             var b = 0;          // b:初始位置=== 0
 46             var c = -400;       //c:变化的值=== -400
 47             var d = 100;        //d:总步数  总时间=== 100
 48             timer = setInterval(function () {
 49                         t += 2;
 50                         if (t == d) {
 51                             clearInterval(timer)
 52                         }
 53                         li1.style.left = Tween.Linear(t, b, c, d) + "px";
 54                     }
 55                     , 30);
 56         }
 57 //右开门
 58         fun1();
 59         function fun1() {
 60
 61             var t = 0;      //t:当前已经运动的时间=== 0
 62             var b = 0;      // b:初始位置=== 0
 63             var c = 400;    //c:变化的值=== 400
 64             var d = 100;    //d:总步数  总时间=== 100
 65             timer1 = setInterval(function () {
 66
 67                 t += 2;
 68                 if (t == d) {
 69                     clearInterval(timer1)
 70                 }
 71                 li2.style.left = Tween.Linear(t, b, c, d) + "px";
 72             }, 30);
 73         }
 74     };
 75
 76     timer2=null;
 77     timer3=null;
 78     btn2.onclick=function(){
 79 //        左关门
 80         fun2();
 81         function fun2() {
 82             var t = 0;          //t:当前已经运动的时间=== 0
 83             var b = -400;       // b:初始位置=== -400
 84             var c = 400;        //c:变化的值=== 400
 85             var d = 100;        //d:总步数  总时间=== 100
 86             timer2 = setInterval(function () {
 87
 88                 t += 2;
 89                 if (t == d) {
 90                     clearInterval(timer2)
 91                 }
 92                 li1.style.left = Tween.Bounce.easeOut(t, b, c, d) + "px";
 93             }, 30);
 94         }
 95 //        右关门
 96         fun3();
 97         function fun3() {
 98             var t = 0;          //t:当前已经运动的时间=== 0
 99             var b = 400;        // b:初始位置=== 400
100             var c = -400;       //c:变化的值=== -400
101             var d = 100;        //d:总步数  总时间=== 100
102             timer3 = setInterval(function () {
103
104                 t += 2;
105                 if (t == d) {
106                     clearInterval(timer3)
107                 }
108                 li2.style.left = Tween.Bounce.easeOut(t, b, c, d) + "px";
109             }, 30);
110         }
111     }
112 </script>
113 </html>

初始效果图====点击开门效果图=====点击关门效果图

				
时间: 2024-10-28 23:54:38

tween.js的动画效果的相关文章

jquery.animateNumber.js 数字动画效果

应要求  ,改个东西,需要的数字动画效果网上搜了,都没有满足要求效果的现成插件,最后找到<a href="http://www.51xuediannao.com/mbdemo.php">jquery.animateNumber.js</a>. 需要的效果如图:: 要求有分割符及小数位,但是<a href="http://www.51xuediannao.com/mbdemo.php">jquery.animateNumber.js

JS DOM编程艺术——用JS实现动画效果—— JS学习笔记2015-7-21(第88天)

moveElement函数 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>用定时器实现JS动画效果</title> <style> </style> </head> <body> <

JavaScript之JS实现动画效果

在前面的随笔中介绍了如何用DOM技术修改文档的央样式信息,用JavaScript添加样式信息可以节约我们的时间和精力,但总的来说,CSS仍是完成这类任务的最佳工具.但是有一个应用领域是目前的CSS无能为力的.如果我们想随着时间的变化而不断改变某个元素的样式,则只能用JavaScript.JavaScript能够按照预定的时间间隔重复的调用一个函数,而意味着我们可以随着时间的推移而不断改变某个元素的样式. 动画是样式随着时间变化的完美例子之一.简单的说,动画就是让元素的位置随着时间而不断的发生变化

javascript -- (tween.js简单动画制作)

声明:tween.js -- github.com -- search --下载 /***导入tween.js**/ <script type="text/javascript" src="js/tween.js" ></script> /***style样式**/ <style> #wrap { position: relative;/***相对定位**/ } #box { position: absolute;/***绝对定位

JS DOM编程艺术——用JS实现动画效果—— JS学习笔记2015-7-22(第89天)

实用的动画效果: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>实用的动画效果</title> <style> #slideshow{ width: 100px; height: 100px; position: rela

htm5+css3+js的动画效果

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title>圣诞主题</title> <link rel='stylesheet' href='http://img.mukewang.com/down/566a38a90001f17d00

tween.js 用户指南 - 与 Three.js 配合使用的补间动画库

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. Learning Three.js - Tween.js for Smooth Animation tween.js 用户指南tween.js u

CSS动画效果的回调

用纯JS实现动画效果代码量大,计算复杂.因此现在前端页面的动画效果一般都采用CSS来实现. CSS动画实现简单高效,但是在处理动画,控制动画过程上却缺少一些有效手段. 例如我们想在动画效果完成时调用回调函数来处理一些事务,会发现CSS并没有提供直接的方法来让我们使用. 一.css动画简介 css动画效果有两种,即过渡和动画. 1.过渡 当元素从一种样式转变为另一种样式,我们为这种转变添加动画效果,这种效果就称作过渡. CSS的过渡是通过 transtion 属性实现的. transtion属性必

Android动画效果animation

1.Tween 根据指定动画开始和结束时的对象属性(位置.Alpha值(透明度).大小.角度等)以及动画播放的时间长度生成动画: 2.Frame 指定每一帧所播放的图片和时间长度. 建立动画的方法: 1.在项目的res文件夹下建立动画资源xml文件,自动加入项目的资源类R中,程序再从资源类中加载动画来使用: 2.直接在程序代码中建立动画对象并设置相关属性. 具体方法: 1.在res文件夹下新建anim文件夹,在anim文件夹下新建xml文件,选择set类型: 2.在xml文件中,新建动画类型标签