原生JS封装简单动画效果

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

 1 function animate(obj, target,num){
 2     if(obj.timer) {
 3       //判断定时器是否存在,决定是否清空
 4        clearInterval(obj.timer); 
 5     }
 6     
 7     obj.timer = setInterval(function() {
 8          var leader = obj.offsetLeft;
 9          var step = num;//num为你移动一步的距离
10    
11          //如果目标在当前位置的左侧,step则应该是负值
12          if(target < leader){
13                step = -step;
14           }
15     
16           //如果距离大于一步,那就放任他跑起来
17           var instance = Math.abs(target - leader);
18            if(instance > Math.abs(step)) {
19                 leader = leader + step;
20                 obj.style.left  = leader + 'px';
21             }else{
22                  //如果小于一步的距离,把他抱过去吧
23                  clearInterval(obj.timer);
24                  obj.style.left = target + 'px';
25             }     
26     },15);
27 
28           
29 }