window.onload=function(){ var aDiv=document.getElementsByTagName('div'); aDiv[2].onclick=function(){ startMove(this,"opacity",100) }}function startMove(obj, attr, iTarget){ clearInterval(obj.timer); obj.timer=setInterval(function (){ var iCur=0; var t=obj.currentStyle[attr]||getComputedStyle(obj, false)[attr]; if(attr=="opacity"){ iCur=parseInt(parseFloat(t)*100) } else{ iCur=parseInt(t); } var iSpeed=(iTarget-iCur)/8; iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed); if(iCur==iTarget) { clearInterval(obj.timer); } else { if(attr=="opacity"){ obj.style.filter="alpha(opacity:"+(iCur+iSpeed)+")"; obj.style[attr]=(iCur+iSpeed)/100; } else{ obj.style[attr]=iCur+iSpeed+'px'; } } }, 30)}
1 回答
橋本奈奈未
TA贡献436条经验 获得超108个赞
currentStyle[attr] 获取属性值的写法应该没问题,但是currentStyle是非标准的,是IE浏览器的API,其实现代浏览器已经可以不用考虑这种情况了,
标准方法是通过getComputedStyle获取CSSStyleDeclaration 对象,
然后通过CSSStyleDeclaration.getPropertyValue(attr)方法获取属性值
添加回答
举报
0/150
提交
取消