js匀速运动

时间:2023-03-08 15:42:28

匀速运动

     封装匀速运动原理:设置定时器,将传入的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);
}