码迷,mamicode.com
首页 > Web开发 > 详细

web 图片上传实现本地预览

时间:2018-06-06 21:34:29      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:说明   默认   适应   login   preview   比较   透明   注意   div   

在说上传之前先说说如何替换or美化浏览器自带的简陋上传按钮(自定义自己的上传按钮 如:img):

  1.将自定义上传按钮上方添加 input file 框,实现input实现透明处理。

  2.对自定义上传按钮添加事件。隐藏真正input框。用事件来触发:

     function imgBtn(){

      return document.getElementById("inputid").click();   

    }

 

现在浏览器基本都支持H5 。针对H5的代码:

var docObj=document.getElementById("inputid");
var imgObjPreview=document.getElementById("imgId");
imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]);

 针对ie的代码:

docObj.select();
docObj.blur();
var localImagId = document.getElementById("divid or imgid");
var imgSrc = docObj.createTextRange().text;
try{         
   localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
   localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
}
catch(e)
{
   console.log(e);
   alert("您上传的图片格式不正确,请重新选择!");
   return false;
}
很多大型网站上都使用到了这个滤镜,它是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)。设置或检索滤镜作用的对象的图片在对象容器边界内的显示方式。(可以无视这行说明,关键是下面的参数。一般来说单独图片且精度比较高的使用scale比较合适,除非您把所有的要用到的图片都放到一张图那就当我没说过。但是那样做的话这张png图片的体积估计不会很小。另,这个滤镜只是加载,其填充方式还是可以受CSS控制的。)

     crop : 剪切图片以适应对象尺寸。

     image : 默认值。增大或减小对象的尺寸边界以适应图片的尺寸。

     scale : 缩放图片以适应对象的尺寸边界。

  src : 必选项。字符串(String)。(指定图片的路径。要注意的是这个路径是指加载滤镜的页面相对于图片的路径而不是css文件相对于图片的路径。这跟一般的图片加载有区别。)
使用实例:
.login_logo {
  background-image: url(../Image/login_logo.png);
  _background-image: none;
  _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src=‘/Public/Image/login_logo.png‘);  
}

 

参考: https://www.cnblogs.com/hzxy-blog/p/6410204.html

上面怎么点击浏览按钮后,图片显示在网页中了,这个用到了, 浏览按钮的各个事件 可以参考下...

<body>  
<input type="file" id="input">  
</body>  
<script>  
    document.getElementById("input").addEventListener("focus",function () {  
        console.log("focus");  
    });  
  
    document.getElementById("input").addEventListener("mousedown",function () {  
        console.log("mousedown");  
    });  
  
    document.getElementById("input").addEventListener("mouseup",function () {  
        console.log("mouseup");  
    });  
  
    document.getElementById("input").addEventListener("input",function () {  
        console.log("input");  
    });  
  
    document.getElementById("input").addEventListener("change",function () {  
        console.log("change");  //上传完后显示图片操作
    });  
  
    document.getElementById("input").addEventListener("blur",function () {  
        console.log("blur");  
    });  
  
    document.getElementById("input").addEventListener("click",function () {  
        console.log("click");  
    });  
  
  
</script>  

 

 

 

web 图片上传实现本地预览

 

web 图片上传实现本地预览

标签:说明   默认   适应   login   preview   比较   透明   注意   div   

原文地址:https://www.cnblogs.com/fps2tao/p/9146229.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!