匀速动画分装
具体操作如下
<body>
<button id="btn">开始</button>
<div id="box"></div>
<script>
window.onload = function () {
paAnimation('btn', 'box', 20, 799);
};
function paAnimation(btnId, boxId, step, toStep) {
//1.获取需要的标签
var btn = document.getElementById(btnId);
var box = document.getElementById(boxId);
//定义变量
var timer = null, begin = 0, toStep = 799;
//2.监听点击事件
btn.onclick = function () {
//2.1清除定时器
clearInterval(timer);
//2.2设置定时器
timer = setInterval(function () {
//相加
begin += step; //begin = begin + step
//判断
if (begin >= toStep) {
begin = toStep;
clearInterval(timer);
}
box.style.marginLeft = begin + "px";
}, 200);
}
}
</script>
</body>
注意点
- 为了防止此盒子运行的路程超过总长度,在进行判断之后,应该让begin = toStep ;
动画原理:盒子的offsetLeft + 步长