第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>

 

相关文章
|
6月前
|
存储 人工智能 JavaScript
构建企业AI的信任与信心基石:从认知到实践的全面升级
本文探讨企业在人工智能(AI)广泛应用背景下面临的信任与信心挑战,提出通过数据安全、技术透明度及技能认证构建信任体系。重点介绍生成式人工智能认证(GAI),其能助力企业培养AI人才,提升团队专业能力。文章还建议企业加强内部培训、外部合作与实战应用评估,全方位推动AI战略落地,为企业发展提供支持。
|
10月前
|
人工智能 弹性计算 架构师
如何推进软硬件协同优化,点亮 AI 新时代?看看这些大咖怎么说
围绕 AI、操作系统、 Arm 生态等关键技术和领域,深入探讨了 AI 技术与操作系统的融合。
|
11月前
|
缓存 监控 测试技术
获取API接口数据的最佳实践详解
在开发过程中,与API进行交互是获取数据和服务的关键步骤。本文详细介绍了10个最佳实践,包括明确需求和文档、错误处理、数据验证、性能优化、安全性、日志和监控、版本控制、代码复用和维护、测试以及遵守法律和道德规范,帮助开发者更高效地从API获取数据,确保数据的准确性、安全性和性能。
|
12月前
|
缓存 负载均衡 Dubbo
Dubbo技术深度解析及其在Java中的实战应用
Dubbo是一款由阿里巴巴开源的高性能、轻量级的Java分布式服务框架,它致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
334 6
|
弹性计算 数据可视化 安全
Terraform Explorer 正式发布
阿里云推出可视化的Terraform调用工具——Terraform Explorer,简化云资源管理,提供可视化操作界面,免安装、免编写代码、免状态管理,助力开发者高效部署和管理基础设施。
|
11月前
|
XML 移动开发 前端开发
Canvas和SVG的区别
Canvas和SVG的区别
436 0
|
JavaScript 前端开发 编译器
你知道Vue 3.0中Treeshaking特性吗?
你知道Vue 3.0中Treeshaking特性吗?
370 0
|
机器学习/深度学习 算法 数据可视化
基于强化学习的路径规划matlab仿真,对比QLearning和SARSA
本仿真展示了使用MATLAB 2022a实现的Q-Learning路径规划算法。通过与环境交互,智能体学习从起点至终点的最佳路径。Q-Learning采用off-policy学习方式,直接学习最优策略;而SARSA为on-policy方法,依据当前策略选择动作。仿真结果显示智能体逐步优化路径并减少步数,最终实现高效导航。核心代码片段实现了Q表更新、奖励计算及路径可视化等功能。
266 0
|
前端开发 JavaScript C++
前端优化指南:我们该怎么去压缩图像?
前端优化指南:我们该怎么去压缩图像?
383 0
|
存储 人工智能 自然语言处理
知识图谱与大模型双向驱动的关键问题和应用探索
图谱技术积极拥抱新一代AI技术体系,如大模型(Large Language Model, LLM),实现二者的双驱动增强,定义融合互通的技术范式和关键问题,借助LLM强大的语言理解能力,为基于非/半结构化数据的图谱构建提效,同时在用户问答中,语言要素和语义结构的理解也会更加精准。
知识图谱与大模型双向驱动的关键问题和应用探索