js匀速运动
匀速运动
封装匀速运动原理:设置定时器,将传入的ele,设定一个速度,使用定时器获取当前时间的一个位置,加上速度值,给回节点,当节点到达目标位置,判断给他清除定时器。
匀速效果地址:https://llcmite.github.io/tmpl/uniform.html
github:https://github.com/llcMite/llcMite.github.io.git
下面封装好的匀速运动的代码
//匀速运动 function getStyle(obj, attr) { if(obj.currentStyle) { return obj.currentStyle[attr]; else { return getComputedStyle(obj, false)[attr]; } } function doGo(obj,speed,attr,target,endFn){ clearInterval(obj.timer); speed= parseInt(getStyle(obj,attr))<target ? speed : -speed; obj.timer=setInterval(function(){ var v=parseInt(getStyle(obj,attr))+speed; if(v>=target && speed>0 || v<=target && speed<0){ v=target; } obj.style[attr]=v+'px'; if(v==target){ clearInterval(obj.timer); /*if(endFn){ endFn(); }//回调函数 */ endFn && endFn(); //与上面判断等价 } },50); }