function startMove(obj,json,fnEnd) { clearInterval(obj.timer);//清除定时器 obj.timer=setInterval(function(){ var bStop=true; //定义全部完成标志 for(var attr in json) { var curr=''; if(attr=='opacity') //运动如果是透明度 { curr=Math.round(parseFloat(_css(obj,'opacity'))*100); } else //其他运动情况 { curr =parseInt(_css(obj,attr)); } //计算速度 基数为6,基数越大,速度越慢 var speed =(json[attr]-curr)/10; speed=speed>0?Math.ceil(speed):Math.floor(speed); //速度:大于0的向上去整,小于0的向下取整 if(curr!=json[attr])//有一项运动没有完成就为false { bStop=false; } if(attr=='opacity') //运动如果是透明 { obj.style.filter='alpha(opacity:'+(curr+speed)+')'; obj.style.opacity=(curr+speed)/100; } else { obj.style[attr]=curr+speed+'px'; } } if(bStop) { clearInterval(obj.timer); if(fnEnd) //如果有callback函数 { fnEnd(); } } },30); }