// obj是移动对象 target是目标距离 callback回调函数
//前提:obj要带定位
function animate(obj,target,callback){
// 先清除以前的定时器,只保留一个定时器
clearInterval(obj.timer);
// obj是个对象,利用对象来添加定时器,实现给不同元素添加不同的定时器
obj.timer=setInterval(function(){
// 匀速动画 当前位置+固定的值
// 缓动动画 当前位置+变化值
// 缓动动画核心算法 步长=(目标距离-当前位置)/10 步长变化
var step=(target-obj.offsetLeft) / 10;
// 步长不要出现小数
// 正值向上取整 负值向下取值
step=step>0?Math.ceil(step):Math.floor(step);
if(obj.offsetLeft==target)
{
clearInterval(obj.timer);
// 回调函数写在定时器结束里面
if(callback)
{
// 如果有回调函数就调用
callback();
}
}
obj.style.left=obj.offsetLeft+step+'px';
},30)
}
封装动画函数
最新推荐文章于 2022-05-08 00:00:57 发布