为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不能写成obj.currentStyle[attr] || getComputedStyle(obj, false)[attr];

为什么不能写成obj.currentStyle[attr] || getComputedStyle(obj, false)[attr];

慕田峪8701529 2017-08-23 22:25:00
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)方法获取属性值

查看完整回答
反对 回复 2017-08-24
  • 1 回答
  • 0 关注
  • 1621 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信