原生javascript 基础动画原理
一、实现原理:
1、开定时器前先清除定时器
2、设置定时器
3、当前元素的位置 + 每一步的长度
4、当元素当前位置超过目标点时,把当前位置==目标点
5、设置元素位置,开始运动
6、判断当前位置如果到达目标点,则清除定时器
二、代码
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> *{ margin:0;padding: 0;} div{position: absolute; width: 100px; height: 100px; background: red; left: 0;top: 100px;} </style> </head> <body> <button id="btn">开始</button> <div id="box"></div> <script type="text/javascript"> window.onload = function(){ var btn = document.getElementById('btn'); var box = document.getElementById('box'); var speed; btn.onclick = function(){ // 1、开定时器前先清除定时器 clearInterval(box.timer); // 2、设置定时器 box.timer = setInterval(function(){ // 3、当前元素的位置 + 每一步的长度 speed = box.offsetLeft + 11; // 4、当元素当前位置超过目标点时,把当前位置==目标点 speed > 800 ? speed = 800 : null; // 5、设置元素位置,开始运动 box.style.left = speed +'px'; // 6、判断当前位置如果到达目标点,则清除定时器 if(speed == 800){ clearInterval(box.timer); } },20) } } </script> </body> </html>
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步