• 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               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; 800px;height: 400px;overflow: hidden;}
      9         li img{ 800px;height:400px;}
     10         ul{list-style: none;position: absolute;}
     11         ul li{position: absolute;}
     12         #btn1{margin-left: 310px; 80px;height: 30px;}
     13         #btn2{margin-left: 20px; 80px;height: 30px;}
     14         #li1{ 399px;height: 400px;background-color: darkgrey;
     15             border-right:1px red solid;  }
     16         #li2{ 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>
    
    

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

    
    
  • 相关阅读:
    VMWare虚拟机下为Ubuntu 12.04.1配置静态IP(NAT方式)
    VMWare虚拟机下为Windows Server 2012配置静态IP(NAT方式)
    Windows 7防火墙阻止了远程桌面连接的解决方法
    Win10系统如何在防火墙里开放端口
    ECharts 定制 label 样式
    目标值柱状图
    echarts中datazoom相关配置
    环形图
    带时间轴的指标监控柱状图
    2020mysql面试题
  • 原文地址:https://www.cnblogs.com/yhyanjin/p/7077866.html
Copyright © 2020-2023  润新知