leo列

导航

关于弹性运动

var left=0;                      //用left变量存储赋给obj.style.left的值,以防每次系统都省略小数,所导致最后结果的细微差异
var iSpeed=0;
function startMove(obj,iTarget)
{
      clearInterval(obj.timer);
      obj.timer=setInterval(function(){
            iSpeed+=(iTarget-obj.offsetLeft)/5;          //速度
            iSpeed*=0.7;                                 //考虑阻力
            left+=iSpeed;
            if(Math.abs(iSpeed)<1&&Math.abs(iTarget-obj.offsetLeft)<1)        //停止条件  速度和距离绝对值小于1
            {
                   clearInterval(obj.timer);
                   obj.style.left=iTarget+"px";                               //清楚后,顺便把目标值赋给obj.style.left
            }  
            else
             {
                   obj.style.left=left+"px";
             }
      },30);
}

posted on 2012-11-18 16:01  leo列  阅读(235)  评论(0编辑  收藏  举报