处理IE6下PNG图片透明背景问题
由于历史原因,IE较早的版本不支持PNG透明
可以支持GIF等的透明
由于png图片相对较小,所以很多网站还是青睐于PNG图片
最近就遇到这种情况,使用js和css滤镜来实现的与大家分享一下下:
首先,判断浏览器和版本,如果是IE7一下版本,进行处理
再者,遍历所有<img>控件,如果为png格式的处理;
最后,img的onload加载图片,并用css滤镜处理图片
//ie6 编码图片
function ES_PNG(obj,rootPath){
if( !( $.browser.msie && parseFloat( $.browser.version ) < 7 )){
return ;
}
obj.each(function(){
var imgSrc = $.trim( $(this).attr("src") );
var suf = "";
//取图片的后缀
if( imgSrc.length > 0 && imgSrc.indexOf("?") == -1){
suf = imgSrc.substring( imgSrc.lastIndexOf(".")+1 ).toUpperCase();
}else if( imgSrc.length > 0 && imgSrc.indexOf("?") != -1){
imgSrc = imgSrc.substring( 0 , imgSrc.indexOf("?") );
suf = imgSrc.substring( imgSrc.lastIndexOf(".")+1 ).toUpperCase();
}
if( suf == "PNG"){
var which = $(this).get(0);
var src = which.src;
// 添加随机数防止图片缓存
var random = new Date().getTime() ;
if(src.indexOf("?") == -1){
src +="?random="+random ;
}else{
src +="&random="+random ;
}
var img = new Image();
img.onload = function(){
var width = parseInt( which.style.width );
var height = parseInt( which.style.height );
if( isNaN(width) || isNaN( height)){
which.style.width = ( parseInt(this.width) )+"px";
which.style.height = ( parseInt(this.height) )+"px";
}else{
which.style.width = parseInt( width) +"px";
which.style.height = parseInt( height) +"px" ;
};
which.src = rootPath+"ieseal.gif" ;//--1个像素的透明gif
//设置css滤镜
which.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='scale')";
};
img.src = which.src;
};
});
}
在web中调用该方法:
//if6去掉png背景
ES_PNG($("img"),"${basePath}/images/public/");
其中ES_PNG()的两个参数:$("img")是所有的图片,${basePath}/images/是1像素透明gif图的位置
处理IE6下PNG图片透明背景问题的更多相关文章
- 解决IE6下 PNG图片有背景问题
IE6下有时候png格式的图片会存在背景的问题,以下是我常用的解决办法: <!--[if IE 6]> <script src="js/DD_belatedPNG_0.0. ...
- 解决全站ie6下PNG图片不透明问题只要几行代码
解决全站ie6下PNG图片不透明问题只要复制下面这几行代码粘贴在你的文档最底部,需要用到的包DD_belatedPNG_0.0.8a.js自己网上下载吧 代码走起 /*在文档底部加入以下代码*/ &l ...
- 解决IE6中 PNG图片透明的终极方案-八种方案!
“珍惜生命,远离IE6”,IE6中的bug令很多Web前端开发人员实为头疼,因此不知道烧了多少脑细胞,在众多的Bug中最令人抓狂的就是IE对png图片的不支持,导致设计师和重构师放弃了很多很炫的效果, ...
- 解决IE6下png图片透明度不显示的问题
世界上最遥远的距离,不外乎我在搞前端,你却在用旧IE,现在随着XP要退休了,IE6的市场占有率应该也会逐步下滑.不过基于天朝人民的惰性以及企鹅微软的“扎篱笆”活动,做网站的朋友依旧不能忽视IE6的存在 ...
- IE6下的png透明图片的背景定位
在IE6下PNG透明图片做背景,无法使用background-position进行定位.但是可以使用margin和绝对定位来进行. 另外,由于IE6下的 :hover 只对<a>支持,对其 ...
- 解决IE6下png图片不透明
ie6着实是非常让人讨厌,显示一张图片,也要带着灰白色的背景色,一张好好的png图片就这么不透明了. 用n多中网上的方式,差点成功的就还有这个了 _background: none; _filter: ...
- VC++使用CImage PNG转BMP图片透明背景处理
PNG格式的图片是支持透明通道的,BMP格式的图片是没有透明通道的,所以当PNG格式的图片转换为BMP格式时,对于PNG图片的透明背景就需要进行特别的处理. VC++中的HBITMAP是支持透明色的, ...
- 解决ie6里png图片透明变白色bug
加入这段js就行了. function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6. { var a ...
- DD_belatedPNG解决IE6下PNG不透明问题
使用方法: 首先下载JS文件:http://dillerdesign.com/experiment/DD_belatedPNG/ 之后在页面中引用代码: <!--[if IE 6]>< ...
随机推荐
- SpringMVC06Exception 异常处理
1.配置web.xml文件 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3// ...
- orcale开篇
1.数据库系统和数据库的管理系统 数据库系统=数据库的管理系统+oper操作员+硬件2.Oracle的版本 8i/ 9i 10g/11g 12c(cloud)3.实例和数据库的关系 实例:数据 ...
- Arduino连接pH计
关于arduino连接ph,核心的东西就是对ph传感器返回的信号值进行一系列的操作,注意因为返回的信号很弱,而且外部环境对其影响也很大,所以需要在电路设计上加入一些功能,比如信号放大.滤波等,电路设计 ...
- sublime 常用快捷键(转)
Sublime text 3是码农最喜欢的代码编辑器,每天和代码打交道,必先利其器,掌握基本的代码编辑器的快捷键,能让你打码更有效率.刚开始可能有些生疏,只要花一两个星期坚持使用并熟悉这些常用的快捷键 ...
- Linux常用操作2
第1章 find命令扩展 转自:https://www.cnblogs.com/clsn/p/7520333.html 1.1 方法一 |xargs 通过|xargs将前面命令的执行结果传给后面. [ ...
- tomcat 启动显示指定的服务未安装
解决方法: 命令行进入tomcat的bin目录 输入“service.bat install” 重启,OK
- [转载]AngularJS快速开始
AngularJS快速开始 Hello World! 开始学习AngularJS的一个好方法是创建经典应用程序“Hello World!”: 使用您喜爱的文本编辑器,创建一个HTML文件,例如:hel ...
- UVA 12169 Disgruntled Judge(Extended_Euclid)
用扩展欧几里德Extended_Euclid解线性模方程,思路在注释里面了. 注意数据范围不要爆int了. /********************************************* ...
- 解决centos7 nslookup:command not found
解析域名www.google.com时,报错,命令找不到,是因为新安装的centos7,没有安装bind-utils,安装后就可以运行nslookup了
- MySQL数据库 crud语句 ifnull() 创建新账户 备份数据库 一对多关系 多对多(中间表) 外键约束 自关联 子查询注意事项 DML DDL DQL mysql面试题 truncate与delete的区别
DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL ...