functiongetStyle(obj,attr,fn) { if(obj.currentStyle) { returnobj.currentStyle[attr];//ie } else { returngetComputedStyle(obj,false)[attr];//ff } } functionstartMove(obj,json,fn) { clearInterval(obj.timer);//开定时器之前先关掉原有的计时器 obj.timer=setInterval(function(){ varbStop=true;//这一次运动就结束了――所有的值都到达了 for(varattrinjson) { //1.取当前的值 variCur=0; if(attr=='opacity') { iCur=parseInt(parseFloat(getStyle(obj,attr))*100); } else { iCur=parseInt(getStyle(obj,attr)); } //2.算速度 variSpeed=(json[attr]-iCur)/8; iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed); //3.检测停止 if(iCur!=json[attr]) { bStop=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(bStop) { clearInterval(obj.timer); if(fn) { fn(); } } },30) }
点击 "运行实例" 按钮查看在线实例
使用方式:
startMove('元素', 对象属性)
例:startMove('#id',{height: 100})
相关推荐
© 2020 asciim码
人生就是一场修行