IE8环境下的上传图片预览

Posted marisen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IE8环境下的上传图片预览相关的知识,希望对你有一定的参考价值。

今天做一个需要在IE浏览器上使用的信息录入项目,遇到了图片上传预览的问题,找了一些资料,最后使用了IE自带的滤镜做到了

<!--html IE8不支持opacity,只能使用双层,一层背景半透明,一层提示信息,而后在单击遮罩层的时候去模拟file的单击-->
<
div id="uploadFace" > <p class="mask"></p> <p class="mask-content">更换头像</p> <input type="file" id="ipt_face" accept="image/*" /> </div>
/*CSS*/
#uploadFace {
    position: relative;
    width: 120px;
    overflow: hidden;
}
#uploadFace #ipt_face {
    filter: alpha(opacity=0);
}
#uploadFace .mask{
    width:100%;
    height:128px;
    position:absolute;
    top:0;
    left:0;
    z-index:998;
}
        #uploadFace:hover .mask {
            background-color: #000;
            filter: alpha(opacity=50);
            cursor:pointer;
        }
        #uploadFace:hover .mask-content {
            filter: alpha(opacity=100);
            cursor: pointer;
        }
.mask-content {
    width: 100%;
    height: 68px;
    padding-top: 60px;
    color: white;
    position: absolute;
    font-size: 14px;
    font-weight: 600;
    z-index: 999;
    background: url(../Images/face.png) no-repeat;
    background-position: center 30px;
    filter: alpha(opacity=0);
}

鼠标移动到该头像上时的效果(图片是随便找的一个矢量相机):

技术图片

JS代码如下:

$(".mask-content").click(function () {
        $("#ipt_face").click();
})

$("#ipt_face").change(function () {
  var fileobj = document.getElementById("ipt_face");
  fileobj.select();
  //需要失去焦点,不然下一步会报错:无法访问
  fileobj.blur();
  var url = document.selection.createRange().text;
  //下行的replace是将获取到的路径反斜杠替换为正斜杠
  document.getElementById("uploadFace").style.filter= "progid:DXImageTransform.Microsoft.AlphaImageLoader(src = ‘" + url.replace(/\\\\/g, "/") + "‘, sizingMethod = ‘scale‘)";
})

以上。

以上是关于IE8环境下的上传图片预览的主要内容,如果未能解决你的问题,请参考以下文章

官方demo修改后的webuploader上传预览图片(兼容IE8) github下载回来的有问题

jquery 上传回显图片预览

关于confluence上传文件附件预览查看时出现乱码的问题解决办法

confluence上传文件附件预览乱码问题(linux服务器安装字体操作)

求js多张图片上传,可预览右上角带删除图标的代码

type="file"实现兼容IE8本地选择图片预览