一致使用各种插件,有时候对原生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 }
原文:http://www.cnblogs.com/chihuoxiaoye/p/6250863.html