详细代码函数
<body> <input type="button" value="移动到400px" id="btn1"> <input type="button" value="移动到800px" id="btn2"> <div id="box"></div> <script> var btn1 = document.getElementById('btn1'); var btn2 = document.getElementById('btn2'); var box = document.getElementById('box'); btn1.onclick = function () { animation(box, 400); } btn2.onclick = function () { animation(box, 800); } function animation (element, target) { //先清理定时器 clearInterval(element.timeId); element.timeId = setInterval (function() { //获取div当前位置, var current = element.offsetLeft;//数据类型,没有px // div 每次移动多少像素 var step = 10; //当前位置小于目标位置,走正数,不然走负数 step = current < target ? step : -step; //每次移动后的距离 current += step; //判断当前位置是否到达目标位置 if(Math.abs(target - current) > Math.abs(step)) { element.style.left = current + 'px'; }else { clearInterval(timeId); //最后一次剩余要走的步数小于每次要走的步数,那么直接到达终点 element.style.left = target + 'px'; } },20); } </script> </body>