zoukankan      html  css  js  c++  java
  • 兼容IE6,IE7的JS图片预览代码

     

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>JS上传前预览图片</title>
    <script type="text/javascript" language="javascript">
    <!--
    function PreviewImg(imgFile){
    var newPreview = document.getElementById("newPreview");
    var imgDiv = document.createElement("div");
    document.body.appendChild(imgDiv);
    var image=new Image();

    image.src
    =imgFile.value;
    imgDiv.style.width
    = image.width;
    imgDiv.style.height
    = image.height;
    imgDiv.style.filter
    ="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod = scale)";
    imgDiv.filters.item(
    "DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;
    newPreview.appendChild(imgDiv);
    var showPicUrl = document.getElementById("showPicUrl");
    showPicUrl.innerText
    =imgFile.value;
    //newPreview.style.width = "80px";
    //newPreview.style.height = "60px";
    }
    -->
    </script>
    </head>
    <body>
    <p>兼容IE6、IE7</p>
    <div id="newPreview"></div>
    <div id="showPicUrl"></div>
    <hr />
    <p>
    选择图片:
    <input type="file" size="20" onchange="javascript:PreviewImg(this);" />
    </p>
    </body>
    </html>

     

     

    关键点是用了一个滤镜

     

     

    相关资料

     

     

    Microsoft.AlphaImageLoader滤镜讲解

     

     

    Microsoft.AlphaImageLoader是IE滤镜的一种,其主要作用就是对图片进行透明处理。虽然FireFox和IE7以上的IE浏览器已经支持透明的PNG图片,但是就IE5-IE6而言还是有一定的意义。


    语法:
    filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src=sURL )
    属性:
    enabled  :  可选项。布尔值(Boolean)。设置或检索滤镜是否激活。true | false true  :  默认值。滤镜激活。
    false  :  滤镜被禁止。
     
    sizingMethod  :  可选项。字符串(String)。设置或检索滤镜作用的对象的图片在对象容器边界内的显示方式。 crop  :  剪切图片以适应对象尺寸。
    image  :  默认值。增大或减小对象的尺寸边界以适应图片的尺寸。
    scale  :  缩放图片以适应对象的尺寸边界。
     
    src  :  必选项。字符串(String)。使用绝对或相对 url 地址指定背景图像。假如忽略此参数,滤镜将不会作用。

    特性:
    Enabled  :  可读写。布尔值(Boolean)。参阅 enabled 属性。
    sizingMethod  :  可读写。字符串(String)。参阅 sizingMethod 属性。
    src  :  可读写。字符串(String)。参阅 src 属性。

    说明:
    在对象容器边界内,在对象的背景和内容之间显示一张图片。并提供对此图片的剪切和改变尺寸的操作。如果载入的是PNG(Portable Network Graphics)格式,则0%-100%的透明度也被提供。
    PNG(Portable Network Graphics)格式的图片的透明度不妨碍你选择文本。也就是说,你可以选择显示在PNG(Portable Network Graphics)格式的图片完全透明区域后面的内容。

    示例:
    #idDiv{position:absolute; left:140px; height:400; 400;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='rain1977.gif',sizingMethod='scale');}
    .dream{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/earglobe.gif');}
    MSDN: http://msdn2.microsoft.com/en-us/library/ms532969.aspx
    P.S. 当想使用backgroundimage属性时,如果不想让图片原尺寸显示,而是类似于IMG width=100% heigth=100% 的效果,可以通过此filter实现。

    Example:
    span.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='test.jpg', sizingMethod='scale')";

    引用:最后说说关于FF和IE效果调和问题。这个滤镜效果只适用于IE,在FF下面无法显示,我想这是前辈说他很难实现的最终问题了。以往我们用*或者_来修复IE下和FF的区别.这一次是要找方法修复FF不能实现的问题.
    其实想到的话,也很简单了.就是先让FF正常显示该图片,然后,用*或_ 来清除IE下的显示效果,最后用*或_ 来做以上的滤镜效果。大功告成!

    以上是官方的说明。事实上实际操作中需要注意:AlphaImageLoader滤镜会导致该区域的链接和按钮无效,一般情况下的解决办法是为链接或按钮添加:position:relative使其相对浮动要注意的是,当加载滤镜的区域的父层有position:absolute绝对定位的时候使用position:relative也不能使链接复原。建议使用浮动办法处理。


    具体操作:

    为预览区域(比如要在某个 div 中预览)添加样式:filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);。
    为 AlphaImageLoader 设置 src 属性。

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lsd123/archive/2008/12/29/3638329.aspx

  • 相关阅读:
    HDU 5528 Count a * b 欧拉函数
    HDU 5534 Partial Tree 完全背包
    HDU 5536 Chip Factory Trie
    HDU 5510 Bazinga KMP
    HDU 4821 String 字符串哈希
    HDU 4814 Golden Radio Base 模拟
    LA 6538 Dinner Coming Soon DP
    HDU 4781 Assignment For Princess 构造
    LA 7056 Colorful Toy Polya定理
    LA 6540 Fibonacci Tree
  • 原文地址:https://www.cnblogs.com/poissonnotes/p/1678255.html
Copyright © 2011-2022 走看看