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

在浏览器上运行的时候透明度这个功能老是出错,提示说无法运用currentStyle 是浏览器的原因吗

function getStyle(obj,attr){

    if(obj.currentStyle){

    return obj.currentStyle[attr]; //IE浏览器

}

else{

    return getComputedStyle(obj,false)[attr];//火狐浏览器

}

}


正在回答

2 回答

如果变宽和变高都可以实现的话,有可能是透明度改变的那一部分代码写错了,或者是你用的浏览器不兼容吧;

ie,edge,opera应该都是用的currentstyle,其他的用的都是getcomputedstyle

0 回复 有任何疑惑可以回复我~
#1

bluesy 提问者

宽和高都能实现,就是透明度有问题,麻烦你帮我看下代码(代码在我问题的评论里面有)谢谢了
2016-01-06 回复 有任何疑惑可以回复我~
#2

bluesy 提问者

啊啊啊啊!不好意思啊,是我自己的失误,逗号打成点了。还是要谢谢你啊,感谢
2016-01-06 回复 有任何疑惑可以回复我~

宽和高都能实现,就是透明度有问题呀,麻烦你帮我看看是什么地方出问题了,谢谢

function getStyle(obj,attr){

if(obj.currentStyle){

return obj.currentStyle[attr]; //IE浏览器

}

else{

return getComputedStyle(obj,false)[attr];//火狐浏览器

}

}

function startMove(obj,attr,target,fn){//(fn是一个为回调函数)

clearInterval(obj.timer);

obj.timer=setInterval(function(){

//1.取当前的值

var icur = 0;

if(attr == 'opacity'){

/*是否为透明度的判断*/

icur = Math.round(parseFloat(getStyle(obj.attr))*100);

}

else{

icur=parseInt(getStyle(obj,attr));

}

//2.算速度

var speed =(target-icur)/8;

speed = speed > 0?Math.ceil(speed):Math.floor(speed);

//3.检测停止

if(icur == target){

clearInterval(obj.timer);

if(fn){

fn()

}

}

else{

if(attr == 'opacity'){

<!--针对IE浏览器-->

obj.style.filter = 'alpha:(opacity:'+(icur + speed)+')';

<!--针对火狐或者谷歌浏览器-->

obj.style.opacity = (icur +speed)/100;

}

else{

obj.style[attr]= icur + speed +'px';<!--(透明度不加PX的)-->

}

}

},30)

}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在浏览器上运行的时候透明度这个功能老是出错,提示说无法运用currentStyle 是浏览器的原因吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信