修改后的运动框架仍然在同时运行的时候存在bug~希望大家继续完善修改
//getStyle封装函数 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 flag=true; for(var attr in json){ if(attr=='opacity'){ var curStyle= Math.round(parseFloat(getStyle(obj,attr))*100); }else{ var curStyle = parseInt(getStyle(obj,attr)); } var rate = (json[attr]-curStyle)/6; rate = rate>0?Math.ceil(rate):Math.floor(rate); if(json[attr] != curStyle){ flag= false; } if(attr=='opacity'){ obj.style.opacity= (curStyle+rate)/100; obj.style.filter= 'alpha(opacity='+(curStyle+rate)+')'; }else{ obj.style[attr] = curStyle+rate+'px'; } if(flag){ if(fn){ fn() }else{ clearInterval(obj.timer); } } } },30) }
参考了问答里大家的回复,这个运动框架已经比较完美~