/** * Created by zhanghaibin on 16/12/5. */ //完美运动框架 function getStyle(obj,attr) { if(obj.currentStyle){ return obj.currentStyle[attr]; }else{ return getComputedStyle(obj,false)[attr]; } }; function startMove(obj,json,fn) { clearInterval(obj.timer); obj.timer=setInterval(function () { var bStop=true; //这一次运动就结束了---所有的值都到达了 for(var attr in json){ //1.取当前值 var iCur=0; if(attr=='opacity'){ iCur=parseInt(parseFloat(getStyle(obj,attr)*100)); }else{ iCur=parseInt(getStyle(obj,attr)); } //2.算速度 var speed=(json[attr]-iCur)/8; speed=speed>0?Math.ceil(speed):Math.floor(speed); //3.检测停止 if(iCur!=json[attr]){ bStop=false; } if(attr=='opacity'){ obj.style.filter='alpha(opacity:'+(iCur+speed)+')'; obj.style.opacity=(iCur+speed)/100; }else{ obj.style[attr]=iCur+speed+'px'; } } if(bStop){ clearInterval(obj.timer); if(fn){ fn(); }; } },30) };