el表示需要 执行动画的元素对象
target表示动画的结束位置
增加一个回调函数(callback)
function animate(el, target, cb) {
clearInterval(el.t1)
el.t1 = setInterval(() => {
let step = (target - el.offsetLeft) / 10
// console.log(step)
if (step > 0) {
step = Math.ceil(step)
} else {
step = Math.floor(step)
}
el.style.left = el.offsetLeft + step + 'px'
if (el.offsetLeft == target) {
clearInterval(el.t1)
if (cb) {
cb()
}
}
}, 30)
}
|