js动画函数封装
//obj:目标对象 target:目标位置 callback回调函数
function animate(obj, target, callback) {
// console.log(callback); callback=function(){} 调用的时候 callback()
clearInterval(obj.timer);
obj.timer = setInterval(function() {
//(目标值 - 现在的位置) / 10(份数 可以改变) 做为每次移动的距离长
//定义步长 因为是不断变化的所以写到定时器里面
//会出现小数的情况 如8.1 step正数 正着走时 就向上取整
//step负数 倒着走时 就向下取整
var step = (target - obj.offsetLeft) / 10;
step = step > 0 ? Math.ceil(step) : Math.floor(step);
obj.style.left = obj.offsetLeft + step + 'px';
if (obj.offsetLeft == target) {
//停止定时器
clearInterval(obj.timer);
//回调函数(程序执行完之后再执行的函数)写在 定时器结束里面 先判断有没有回调函数
if (callback) { //有这个参数吗
//调用函数
callback();
}
}
}, 15);
}