最近做个项目,美工要用到png透明图标。在ie7,8都正常,ie6下png那个灰色背景显示出来了,不友好,网上
找了2种解决方案,一种是js消除,一种是滤镜处理。
但是各有优缺点,js消除后我自己写的按钮代码以及css变化控制的js代码无法执行,好像直接屏蔽了不认了;
css滤镜处理速度有点慢,要1秒以上才能显示,特别是做特效比如鼠标放上去按钮图片变换时,这个速度无法接受啊!有谁有更好的办法么?头大了,如果没好的办法,现在只能改美工设计了!在线等.................
找了2种解决方案,一种是js消除,一种是滤镜处理。
但是各有优缺点,js消除后我自己写的按钮代码以及css变化控制的js代码无法执行,好像直接屏蔽了不认了;
css滤镜处理速度有点慢,要1秒以上才能显示,特别是做特效比如鼠标放上去按钮图片变换时,这个速度无法接受啊!有谁有更好的办法么?头大了,如果没好的办法,现在只能改美工设计了!在线等.................
加入项目,然后引用 的,不知道LZ有没有试过
function correctPNG()
{
for(var i=0; i<document.images.length; i++)
{
var img = document.images[i]
var imgName = img.src.toUpperCase()
if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
{
var imgID = (img.id) ? "id='" + img.id + "' " : ""
var imgClass = (img.className) ? "class='" + img.className + "' " : ""
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
var imgStyle = "display:inline-block;" + img.style.cssText
if (img.align == "left") imgStyle = "float:left;" + imgStyle
if (img.align == "right") imgStyle = "float:right;" + imgStyle
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
img.outerHTML = strNewHTML
i = i-1
}
}
}
function alphaBackgrounds(){
var rslt = navigator.appVersion.match(/MSIE (d+.d+)/, '');
var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
for (i=0; i<document.all.length; i++){
var bg = document.all[i].currentStyle.backgroundImage;
if (bg){
if (bg.match(/.png/i) != null){
var mypng = bg.substring(5,bg.length-2);
document.all[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mypng+"', sizingMethod='crop')";
document.all[i].style.backgroundImage = "url('')";
}
}
}
}if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer") {
window.attachEvent("onload", correctPNG);
window.attachEvent("onload", alphaBackgrounds);
}
5楼的没用过呢,能否发个连接看看,学习学习,谢谢!
<script type=”text/javascript” src=”下载下来的JS路径”></script>
<script>
DD_belatedPNG.fix(‘CSS选择器, 应用类型’);
</script>
<![endif]–>
这样来用,放在其他的javascript后面
上面的css选择器具体是指的啥?
上面的css选择器具体是指的啥?
最好不要用*,就用你css样式中引用的class
如果用*的话就是过滤所有的css然后,你的鼠标事件可以写在方法里onmouseover="changePng()"这样写试试
毕竟IE6本身的确不支持PNG,只能通过js滤镜来获取效果,但是这样还是会造成其他的js问题