码迷,mamicode.com
首页 > 其他好文 > 详细

第59天:缓动动画封装函数

时间:2017-10-20 23:23:09      阅读:463      评论:0      收藏:0      [点我收藏+]

标签:数学   strong   time   lan   mes   tin   onclick   ntb   console   

一、三个取整函数

 这三个函数都是  数学函数   

 Math   

 Math.ceil()    向上取整      天花板    

 比如说  console.log(Math.ceil(1.01))       结果 是 2  

         console.log(Math.ceil(1.9))        结果 2

         console.log(Math.ceil(-1.3))       结果 是  -1   

 Math.floor()   向下取整      地板  

    比如说 console.log(Math.floor(1.01))       结果 是 1  

         console.log(Math.floor(1.9))           结果 1

         console.log(Math.floor(-1.3))       结果 是  -2   

 Math.round()   四舍五入函数   

            console.log(Math.round(1.01))       结果 是 1

           console.log(Math.round(1.9))       结果 是 2

二、缓动动画原理

  匀速动画的原理:   盒子本身的位置  +  步长  

  缓动动画的原理:    盒子本身的位置  +  步长 (不断变化的)

三、缓动动画封装函数如下:

 

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <style>
 7         div {
 8             width: 100px;
 9             height: 100px;
10             background-color: pink;
11             position: absolute;
12             left: 0;
13             opacity: 0.3;
14         }
15     </style>
16 </head>
17 <body>
18 <button id="btn200">200</button>
19 <button id="btn400">400</button>
20 <div id="box"></div>
21 </body>
22 </html>
23 <script>
24     var btn200 = document.getElementById("btn200");
25     var btn400 = document.getElementById("btn400");
26     var box = document.getElementById("box");
27     btn200.onclick = function() {
28         animate(box,200);
29     }
30     btn400.onclick = function() {
31         animate(box,400);
32     }
33 
34     function animate(obj,target){  //  第一个参数 动谁   第二个参数  动多少
35         clearInterval(obj.timer);
36         obj.timer = setInterval(function() {
37               // 计算步长   动画的原理    盒子本身的位置  +  步长
38               var step = (target - obj.offsetLeft) / 10;  // 步长
39               step =  step > 0 ? Math.ceil(step) : Math.floor(step);  //  取整步长
40               // obj.style.left = 盒子本身的位置  +  步长
41               obj.style.left = obj.offsetLeft + step + "px";
42               if(obj.offsetLeft == target){
43                   clearInterval(obj.timer);
44               }
45         },30)
46     }
47  </script>

 

第59天:缓动动画封装函数

标签:数学   strong   time   lan   mes   tin   onclick   ntb   console   

原文地址:http://www.cnblogs.com/le220/p/7701869.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!