首页 > 代码库 > (39)JS运动之缓冲运动
(39)JS运动之缓冲运动
基本思路:使用定时器让物体向右运动,在运动的过程中再不是匀速运动,而是先快后慢,即距离越大,速度越快,距离越小,速度越小,但是到达终点的时候,必须注意要使用向上取整函数Math.ceil()和向下取整函数Math.floor();这样才能够正确无误地到达终点,而不是有出入。
<!DOCTYPE HTML> <!-- --> <html> <head> <meta charset="utf-8"> <title></title> <style> #div1{ width:100px; height:100px; background:red; position:absolute; left:0px;//left:600px; top:50px; } #div2{ width:1px; height:300px; background:red; position:absolute; left:300px; top:0px; background:black; } </style> <script> function startMove(){ var oDiv=document.getElementById('div1'); setInterval(function(){ var speed=(300-oDiv.offsetLeft)/10; speed=speed>0?Math.ceil(speed):Math.floor(speed);//向上取整 oDiv.style.left=oDiv.offsetLeft+speed+'px'; document.title=oDiv.offsetLeft+','+speed; },30); } </script> </head> <body> <input type="button" value=http://www.mamicode.com/"开始运动" onclick="startMove()"/>>效果图:初始状态,分别从左出发和从右出发:
没取整导致有出入的情况,title表示终点位置和速度大小:
取整没误差情况:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。