我已经尝试了一段时间让AlphaImageLoader在IE6中使用我的s。
我尝试的解决方案之一建议应用AlphaImageLoader然后应用Opacity(0)。这基本上将透明png放在背景中并使原始png消失。当我尝试这个时,图像就会消失。省略不透明度过滤器无效,png仍然不透明。有人来帮助吗?
<img id="NavBox_topLeft.png" src="#" width="17" height="34" class="png summaryimgsrc1"
style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../../../1.75/commondata/sharedimages/summary/NavBox_topLeft.png', sizingMethod='scale');"/>
</td>
我在标记中尝试这个来测试。 Ultimatley将添加JS。
由于
答案 0 :(得分:0)
已有数百个脚本已经为您完成此操作。
答案 1 :(得分:0)
尝试一下:
// Transparent PNG for IE
// http://vbence.web.elte.hu/ie_png_alpha.html
function alphaFixIE() {
var s, i, j;
// IMG
var els = document.getElementsByTagName("IMG");
for (i=0; i<els.length; i++) {
s = els[i].src;
if (s.toLowerCase().indexOf(".png") != -1) {
els[i].src = "spacer.gif";
els[i].style.filter += "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + s + "', sizingMethod=image);";
}
}
// CSS: background
for (i=0; i<document.styleSheets.length; i++) {
var pos = document.styleSheets[i].href.lastIndexOf("/");
var cssDir = (pos != -1) ? document.styleSheets[i].href.substring(0, pos + 1) : "";
for (j=0; j<document.styleSheets[i].rules.length; j++) {
var style = document.styleSheets[i].rules[j].style;
if (style.backgroundImage.toLowerCase().indexOf(".png") != -1) {
var filename = style.backgroundImage.substring(4, style.backgroundImage.length - 1);
if (filename.indexOf("http://") != 0 && filename.indexOf("/") != 0)
filename = cssDir + filename;
style.backgroundImage = "none";
style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + filename + "', sizingMethod='crop');";
}
}
}
}
if (navigator.userAgent.indexOf("MSIE") != -1 && navigator.userAgent.indexOf("Windows") != -1)
window.attachEvent("onload", alphaFixIE);
注意:不要忘记将spacer.gif
添加到同一目录。
(也许浏览器/功能检测部分可以改进一点,但它可以工作)