function getStyle(obj, name){ if(obj.currentStyle) { return obj.currentStyle[name]; } else { return getComputedStyle(obj, false)[name]; }}//startMove(oDiv, {width: 400, height: 400})function startMove(obj, json, fnEnd){ clearInterval(obj.timer); obj.timer=setInterval(function (){ var bStop=true; //假设:所有值都已经到了 for(var attr in json) { var cur=0; if(attr=='opacity') { cur=Math.round(parseFloat(getStyle(obj, attr))*100); } else { cur=parseInt(getStyle(obj, attr)); } var speed=(json[attr]-cur)/6; speed=speed>0?Math.ceil(speed):Math.floor(speed); if(cur!=json[attr]) bStop=false; if(attr=='opacity') { obj.style.filter='alpha(opacity:'+(cur+speed)+')'; obj.style.opacity=(cur+speed)/100; } else { obj.style[attr]=cur+speed+'px'; } } if(bStop) { clearInterval(obj.timer); if(fnEnd)fnEnd(); } }, 30);}
1 回答
玉林峰
TA贡献14条经验 获得超9个赞
假设你传入的json是{left:200, top:200},循环json是用for...in。例如
for(var name in json){}
此时的name就是json的每一个属性 (left和top) json就是你传入的{left:200,top:200}
json[name]就是 left和top的值 (200)
其实和for循环差不多,只是把i换成name了
添加回答
举报
0/150
提交
取消