IE7-8 PNG24加透明opacity在Jquery动画中出现黑边的解决方法

这个问题 相信不少做JQ动画的童鞋都遇到过。在页面上实现一些动画效果,用PNG24的图片。经常会出现黑边。

JQuery动画的淡入淡出效果,用在PNG24的图片上,在IE7、IE8下会出现黑边框。

有些人觉得很奇怪,为什么屌丝IE6正常,反而在IE7、8下却有黑边呢。

其实问题出在filter属性上。IE6引用PNG24的图片的方式是:

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img24.png');

所以避免了这个黑边问题。

网上也有一些JS插件解决黑边问题。但效果并不理想。经过多次测试,最终解决方案如下:

在使用PNG24的图片外再嵌套一层DIV,用于设置透明度。同时IE下PNG24图片不使用background来引用。而使用filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’img24.png’);的方式。

相关代码:
html

<div class="warp"> <div class="img24"></div> </div> 

css

.warp {
filter:alpha(opacity=20);
}

//这里是单独对IE678设置的样式,chrome等其他高级浏览器还是照样用background引用
.img24 {
background:none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img24.png');
width:100px;
height:100px;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注