image1.png和image2.png都具有透明背景。
<script type="text/javascript">
$(document).ready(function(){
$("img#test").click(function() {
$(this).attr("src", "image2.png");
});
});
</script>
<img id="test" src="image1.png">
上面的代码应该用image2.png替换image1.png。但是在Internet Explorer 6/7/8(兼容性视图关闭)中,它不会从背景中清除image1.png,而只是将image2.png放在image1.png上。
如何在替换为image2.png之前完全从背景中动态删除image1.png?
修改
我在base.css中使用以下代码修复了在Internet Explorer中显示tranparent .png图像的错误。
/ * Png Ransparent * /
.mypng img {
方位角:表达式(
this.pngSet?this.pngSet = true:(this.nodeName ==“IMG”&amp;&amp; this.src.toLowerCase()。indexOf('。png')&gt; -1?(this.runtimeStyle .backgroundImage =“none”,
this.runtimeStyle.filter =“progid:DXImageTransform.Microsoft.AlphaImageLoader(src ='”+ this.src +“',sizingMethod ='image')”,
this.src =“/ static / images / transparent.gif”):( this.origBg = this.origBg?this.origBg:this.currentStyle.backgroundImage.toString()。replace('url(“', '').replace( '“)', ''),
this.runtimeStyle.filter =“progid:DXImageTransform.Microsoft.AlphaImageLoader(src ='”+ this.origBg +“',sizingMethod ='crop')”,
this.runtimeStyle.backgroundImage =“none”)),this.pngSet = true);
}
这是导致这个问题的原因吗?
答案 0 :(得分:1)
您可以尝试使用$(this).after();
并在要替换的图像之后添加新图像;最后做$(this).remove();
答案 1 :(得分:0)
用DD_belatedPNG替换.png修复代码后,以前的代码可以运行。