原生js实现即时预览代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生js实现即时预览代码相关的知识,希望对你有一定的参考价值。

html代码

 1 <!DOCTYPE html>
 2 <html lang="zh-CN">
 3     <head>
 4         <meta charset="utf-8">
 5         <title>上传图片</title>
 6         <style>
 7             body,div,img{
 8                 margin:0 auto;
 9                 padding: 0;
10             }
11             html{
12                 width:100%;
13                 height:100%;
14             }
15             body{
16                 line-height: 20px;
17                 font-family: "微软雅黑";
18                 width:1000px;
19                 height:100%;
20                 background-color: #000;
21 
22             }
23             .upload-img{
24                 position: relative;
25                 text-align: center;
26                 line-height: 300px;
27                 float: left;
28                 margin-top: 100px;
29                 background-color: #fff;
30                 color:#333;
31                 font-size: 30px;
32                 width: 300px;
33                 height: 300px;
34                 margin-left: 15px;
35                 margin-right: 15px;
36             }
37             .upload-img .imgs{
38                 position:absolute;
39                 left:0;
40                 top: 0;
41                 width:100%;
42                 height:100%;
43             }
44             .upload-img:hover{
45                 color:#f90;
46             }
47             .upload-img .btn{
48                 width:100%;
49                 height:100%;
50                 opacity: 0;
51                 filter:alpha(opacity=0);
52                 z-index: 2;
53                 position: absolute;
54                 left: 0;
55                 top: 0;
56                 cursor: pointer;
57             }
58         </style>
59     </head>
60     <body>
61         <div class="upload-img">
62             上传图片
63             <input type="file" class="btn" onchange="uploadImg(this,1);" />
64         </div>
65         <div class="upload-img">
66             上传图片
67             <input type="file" class="btn" onchange="uploadImg(this,2);" />
68         </div>
69          <div class="upload-img">
70             上传图片
71             <input type="file" class="btn" onchange="uploadImg(this,3);" />
72         </div>
73     </body>
74 </html>

JS代码

 1 //上传图片
 2 function uploadImg(that,num){
 3     var parentNode=that.parentNode;
 4     var images=parentNode.getElementsByTagName("img");
 5     if(images.length==0){
 6         createImg(parentNode,num);
 7     }
 8     var img=document.getElementById("img"+num);
 9     var f=that.files;
10     if(f&&f[0]){
11         checkedImg(that,f,img);      
12     }else{
13         //兼容IE                      
14         var srcVal=that.value;
15         if(!srcVal){
16             alert("你执行了取消操作");
17             img.setAttribute("src","");  
18             srcVal="";
19         }else{
20             var houzui=srcVal.substr(srcVal.lastIndexOf("."))
21                              .replace(".","");
22             if(houzui=="jpg"||houzui=="jpeg"){
23                 img.setAttribute("src",srcVal);  
24             }else{
25                 alert("请上传后缀名是jpg,jpeg格式的图片");
26                 img.setAttribute("src","");  
27                 srcVal="";
28             }
29         }
30 
31     }
32 }
33 //创建一张图片
34 function createImg(parentNode,num){
35     var imgElement=document.createElement("img");
36         imgElement.className="imgs";
37         imgElement.id="img"+num;
38         parentNode.appendChild(imgElement);  
39 }
40 //判断图片类型,大小
41 function checkedImg(that,f,img){
42     //图片类型
43     if(f[0].type=="image/jpeg"){
44          //图片大小不能超过3M 
45         if(f[0].size/1024/1024<3){
46         var imgSrc=window.URL.createObjectURL(that.files[0]);
47             img.setAttribute("src",imgSrc);      
48         }else{
49             alert("上传图片大小不能超过3M");
50             //清空文件域
51             f=[];
52             img.setAttribute("src","");  
53             return false;
54         }       
55     }else{
56         alert("请上传后缀名是jpg,jpeg格式的图片");
57         //清空文件域
58         f=[];
59         img.setAttribute("src","");  
60         return false;
61     }   
62 }           

 


以上是关于原生js实现即时预览代码的主要内容,如果未能解决你的问题,请参考以下文章

JS兼容各个浏览器的本地图片上传即时预览效果

原生 js 实现截图粘贴预览图片功能

原生JS和CSS实现点击图片预览放大

原生JS和CSS实现点击图片预览放大

js 实现异步上传图片+预览

图片上传即时预览效果