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

简介: 一、三个取整函数 这三个函数都是  数学函数    Math    Math.ceil()    向上取整      天花板     比如说  console.log(Math.ceil(1.01))       结果 是 2           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>

 

相关文章
|
9天前
|
前端开发
HarmonyNext动画大全02-显式动画
HarmonyNext动画大全02-显式动画
20 2
HarmonyNext动画大全02-显式动画
|
3月前
|
前端开发 JavaScript UED
使用JavaScript实现滑动动画的几种方法
使用JavaScript实现滑动动画的几种方法
|
移动开发 前端开发 JavaScript
【前端动画】实现动画的6种方式
【前端动画】实现动画的6种方式
1168 0
|
JavaScript 开发者
动画-使用过渡名实现动画|学习笔记
快速学习动画-使用过渡名实现动画
动画-使用过渡名实现动画|学习笔记
|
JavaScript 前端开发 开发者
动画-钩子函数实现小球半场动画|学习笔记
快速学习动画-钩子函数实现小球半场动画
129 0
动画-钩子函数实现小球半场动画|学习笔记
|
Dart 开发者
【Flutter】Animation 动画 ( AnimatedBuilder 动画使用流程 | 创建动画控制器 | 创建动画 | 创建动画作用的组件 | 关联动画与组件 | 动画执行 )(三)
【Flutter】Animation 动画 ( AnimatedBuilder 动画使用流程 | 创建动画控制器 | 创建动画 | 创建动画作用的组件 | 关联动画与组件 | 动画执行 )(三)
176 0
【Flutter】Animation 动画 ( AnimatedBuilder 动画使用流程 | 创建动画控制器 | 创建动画 | 创建动画作用的组件 | 关联动画与组件 | 动画执行 )(三)
|
前端开发 图形学 Python
动画系统之2D动画
动画系统之2D动画
177 0
动画系统之2D动画
|
存储 图形学
动画系统中的基础动画
动画系统中的基础动画
172 0
动画系统中的基础动画
【Flutter】Animation 动画 ( AnimatedBuilder 动画使用流程 | 创建动画控制器 | 创建动画 | 创建动画作用的组件 | 关联动画与组件 | 动画执行 )(二)
【Flutter】Animation 动画 ( AnimatedBuilder 动画使用流程 | 创建动画控制器 | 创建动画 | 创建动画作用的组件 | 关联动画与组件 | 动画执行 )(二)
172 0
【Flutter】Animation 动画 ( AnimatedBuilder 动画使用流程 | 创建动画控制器 | 创建动画 | 创建动画作用的组件 | 关联动画与组件 | 动画执行 )(一)
【Flutter】Animation 动画 ( AnimatedBuilder 动画使用流程 | 创建动画控制器 | 创建动画 | 创建动画作用的组件 | 关联动画与组件 | 动画执行 )(一)
154 0