• [转载 js]一次性解决png在i6下的透明问题(包括做为img和背景的两种情况)


    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=\"" + "" + 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) {
    window.attachEvent("onload", correctPNG);
    window.attachEvent("onload", alphaBackgrounds);
    }


    将这段代码放入页面中,可以将png的图片在i6下透明度问题一次性解决,不论在页面内以img标签的形式,还是在css里以background的形式。不用在css里去一个个设滤镜了。

    这段代码极大的方便了页面的制作,但仍然有个问题:因为js会自动将css的background-img清零,所以background-repeaqt和background-position还是不能使用的,大家切页面的时候还是要小心。
  • 相关阅读:
    convert image to base64 and post to RESTful wcf
    在android webview实现截屏的手动tounchmove裁剪图片
    How to use jquery ajax and android request security RESTful WCF
    using swfUpload in asp.net mvc
    using HttpClient and sending json data to RESTful server in adroind
    ODP.NET数据访问
    android image watermark
    解决国内不能访问github的问题
    idapro权威指南第二版阅读笔记第九章 交叉引用和绘图功能
    idapro权威指南第二版阅读笔记第二章 逆向和反汇编工具
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426966.html
Copyright © 2020-2023  润新知