处理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]>< ...
随机推荐
- PC端下载图片
PC端将图片下载到本地saveFile(imgdata,filename){ var save_link=document.createElementNS('http://www.w3.org/199 ...
- 认识与入门 MarkDown (转Te_Lee)
Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用.看到这里请不要被「标记」.「语言」所迷惑,Markdown 的语法十分简单.常用的标记符号也不 ...
- new Date(str)返回的时间结果在移动端比PC端快了8小时
最近开发过程中,后端传过来一个“2018-03-15T17:53:19.6307928”字符串,需要将字符串转换成“2018-03-15 17:53”的格式展示出来.首先我使用了var time=n ...
- Android商城开发系列(十三)—— 首页热卖商品布局实现
热卖商品布局效果如下图: 这个布局跟我们上节做的推荐是一样的,也是用LinearLayout和GridView去实现的,新建一个hot_item.xml,代码如下所示: <?xml versio ...
- VMware下Centos6.4安装
VMware(Virtual Machine ware)是一个“虚拟PC”软件公司,提供服务器.桌面虚拟化的解决方案. 小伙伴们网上下载VMware11,一路下一步自己安装吧!!! 打开 VMware ...
- dac verilog ad5601
首先从官网下载数据手册.DAC有串行有并行,ad5601是串行,(需要好多时钟沿的移位内部转换为并行在输出). 按照手册的时序编写程序, 关注下芯片的波特率范围 看看手册的数据传输那些事有效的数据位 ...
- raw_input功能
摘要: raw_input() & input() raw_input的功能是方便的从控制台读入数据. input与raw_input都是Python的内建函数,实现与用户的交互,但是功 ...
- 在vue-cli中引入图片不能正常显示
我们用vue-cli构建项目的时候,图片的地址是后台的,可是在template中item.img放到src中是不能正常显示的为什么? 原因是:url-loader无法解析js动态生成的路径. 解决: ...
- ZOJ 2112 Dynamic Rankings(二分,树套树)
动态区间询问kth,单点修改. 区间用线段树分解,线段树上每条线段存一颗平衡树. 不能直接得到kth,但是利用val和比val小的个数之间的单调性,二分值.log^3N. 修改则是一次logN*log ...
- Wired Memory
https://developer.apple.com/library/content/documentation/Performance/Conceptual/ManagingMemory/Arti ...