// javascript document /* ** 多物体,任意值运动框架 obj:要运动的对象 json:需要改变的属性以及其值的键值对 fn:cellback返回函数 ** */ /*获取元素属性值的函数*/ 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(){ for(var attr in json) { var bestop = true; //取当前值 var icur=0; if(attr=='opacity') { icur=parseint(parsefloat(getstyle(obj,attr))*100); } else { icur=parseint(getstyle(obj,attr)); } //速度 var ispeed=(json[attr]-icur)/6; ispeed=ispeed>0?math.ceil(ispeed):math.floor(ispeed); //检测停止 if(icur!=json[attr]) { bestop = false; } if(attr=='opacity') { obj.style.filter='alpha(opacity:'+(icur+ispeed)+')'; obj.style.opacity=(icur+ispeed)/100; } else { obj.style[attr]=icur+ispeed+'px'; } } if(icur==json[attr]) { clearinterval(obj.timer); if(fn) { fn(); } } },30); }