原生JS封装简单动画效果

时间:2022-04-13 09:45:34

原生JS封装简单动画效果

一致使用各种插件,有时候对原生JS陌生了起来,所以决定封装一个简单动画效果,熟悉JS原生代码

 function animate(obj, target,num){
if(obj.timer) {
//判断定时器是否存在,决定是否清空
clearInterval(obj.timer);
} obj.timer = setInterval(function() {
var leader = obj.offsetLeft;
var step = num;//num为你移动一步的距离 //如果目标在当前位置的左侧,step则应该是负值
if(target < leader){
step = -step;
} //如果距离大于一步,那就放任他跑起来
var instance = Math.abs(target - leader);
if(instance > Math.abs(step)) {
leader = leader + step;
obj.style.left = leader + 'px';
}else{
//如果小于一步的距离,把他抱过去吧
clearInterval(obj.timer);
obj.style.left = target + 'px';
}
},15); }