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);
}

 

posted @ 2017-10-20 22:19  LLC-Mite  阅读(158)  评论(0编辑  收藏  举报