修改后的运动框架仍然在同时运行的时候存在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)
}参考了问答里大家的回复,这个运动框架已经比较完美~