IE浏览器PNG图片透明效果代码

 更新时间:2008年09月02日 15:43:06   作者:  
平常,我们经常使用Gif格式的图片以保持图片在浏览器中透明,以支持底色。但由于IE浏览器本身的原因,我们无法使透明的PNG图片透明起来。那么,如何将它在IE浏览器下变得透明呢?

首先看我们的<img>标签代码:
<img src="Example.png" border="0" alt="放大镜" />
我们将利用IE中特有的特效来满足这个要求,这就是AlphaImageLoader Filter (http://msdn.microsoft.com/library/default.asp?url=/workshop/author/filter/reference/filters/alphaimageloader.asp)

如何做?
将下面代码保存为correctPNG.js:

复制代码 代码如下:

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; margin:6px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
img.outerHTML = strNewHTML
i = i-1
}
}
}
window.attachEvent("onload", correctPNG);

然后在你需要透明的网页中的<head>....</head>区加入:<script type="text/javascript" src="correctPNG.js"></script>

在<body>区加入多个与<img src="Example.png" border="0" alt="放大镜" />类似的PNG图片,试试看?
另一种方法:
复制代码 代码如下:

<html>
<head>
<title>alpha image</title>
<style type="text/css">
.pngholder{
width:100px;
height:100px;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='https://www.jb51.net/attachments/200510/03_124401_ie.png');
}
.pngalpha{
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);
background:url(https://www.jb51.net/attachments/200510/03_124401_ie.png) no-repeat;
width:100px;
height:100px;
}
</style>
</head>
<body bgcolor="#3399ff#">
<!- And this is your code to implement the image ->
<div>透明</div>
<div class="pngholder"><div class="pngalpha"></div></div>
<div>不透明</div>
<img src="https://www.jb51.net/attachments/200510/03_124401_ie.png"/>
</body>
</html>

相关文章

  • 原生js获取浏览器窗口及元素宽高常用方法集合

    原生js获取浏览器窗口及元素宽高常用方法集合

    本文主要介绍了原生js获取浏览器窗口及元素宽高常用方法。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • bootstrap-table组合表头的实现方法

    bootstrap-table组合表头的实现方法

    本篇文章主要介绍了bootstrap-table组合表头的实现方法,非常具有实用价值,需要的朋友可以参考下
    2017-09-09
  • js代码验证手机号码和电话号码是否合法

    js代码验证手机号码和电话号码是否合法

    这篇文章主要介绍了js代码验证手机号码和电话号码是否合法,手机号码和电话号码在某些网站都是必填项,为了提高用户体验度,一般要进行合法性校验的,需要的朋友可以参考下
    2015-07-07
  • 漂亮! js实现颜色渐变效果

    漂亮! js实现颜色渐变效果

    很神奇!js实现颜色渐变效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • CSS常用网站布局实例

    CSS常用网站布局实例

    PS:这里列出的是常用的例子,而非研究之用,对一每个盒子,都没有设置margin,padding,boeder等属性!
    2008-04-04
  • js Element Traversal规范中的元素遍历方法

    js Element Traversal规范中的元素遍历方法

    对于元素间的空格,在IE9之前,都不会返回文档节点,其它的所有浏览器都会返回文档节点,为了兼容浏览器这间的差异,又不更改已有的DOM 标准,所以有了 Element Traversal 规范
    2018-04-04
  • JavaScript实现电灯开关小案例

    JavaScript实现电灯开关小案例

    这篇文章主要为大家详细介绍了JavaScript实现电灯开关小案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • js实现简单的秒表

    js实现简单的秒表

    这篇文章主要为大家详细介绍了js实现简单的秒表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • JS新手入门数组处理的实用方法汇总

    JS新手入门数组处理的实用方法汇总

    这篇文章主要给大家介绍了关于JS新手入门数组处理实用方法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 微信小程序分包流程步骤超详细讲解

    微信小程序分包流程步骤超详细讲解

    分包指的是把一个完整的小程序项目,按照需求划分为不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载,下面这篇文章主要给大家介绍了关于微信小程序分包流程步骤的相关资料,需要的朋友可以参考下
    2024-03-03

最新评论