javascript实现input file上传图片预览效果

前端技术 2023/09/08 JavaScript

本文实例介绍了javascript实现input file上传图片预览效果的详细代码,分享给大家供大家参考,具体内容如下

运行效果图:

具体实现代码:

<!DOCTYPE html>
<html>

<head>
 <meta charset=\"utf-8\">
 <title></title>
 <script type=\"text/javascript\" src=\"jquery-1.11.1.min.js\"></script>

 <style type=\"text/css\">
  .imgbox,.imgbox1
  {
   float: left;
   margin-right: 20px;
   margin-top: 20px;
   position: relative;
   width: 182px;
   height: 142px;
   border: 1px solid red;
   overflow: hidden;
  }
  .imgbox1{border: 1px solid blue;
  }


  .imgnum{
   left: 0px;
   top: 0px;
   margin: 0px;
   padding: 0px;
  }
  .imgnum input,.imgnum1 input {
   position: absolute;
   width: 182px;
   height: 142px;
   opacity: 0;
  }
  .imgnum img,.imgnum1 img {
   width: 100%;
   height: 100%;
  }
  .close,
  .close1 {
   color: red;
   position: absolute;
   left: 170px;
   top: 0px;
   display: none;
  }





 </style>
</head>

<body>
<div id=\"img\">
<div class=\"imgbox\">
 <div class=\"imgnum\">
  <input type=\"file\" class=\"filepath\" />
  <span class=\"close\">X</span>
  <img src=\"btn.png\" class=\"img1\" />
  <img src=\"\" class=\"img2\" />
 </div>
</div><div class=\"imgbox\">
 <div class=\"imgnum\">
  <input type=\"file\" class=\"filepath\" />
  <span class=\"close\">X</span>
  <img src=\"btn.png\" class=\"img1\" />
  <img src=\"\" class=\"img2\" />
 </div>
</div>
<div class=\"imgbox\">
 <div class=\"imgnum\">
  <input type=\"file\" class=\"filepath\" />
  <span class=\"close\">X</span>
  <img src=\"btn.png\" class=\"img1\" />
  <img src=\"\" class=\"img2\" />
 </div>
</div>
<div class=\"imgbox\">
 <div class=\"imgnum\">
  <input type=\"file\" class=\"filepath\" />
  <span class=\"close\">X</span>
  <img src=\"btn.png\" class=\"img1\" />
  <img src=\"\" class=\"img2\" />
 </div>
</div>
<div class=\"imgbox\">
 <div class=\"imgnum\">
  <input type=\"file\" class=\"filepath\" />
  <span class=\"close\">X</span>
  <img src=\"btn.png\" class=\"img1\" />
  <img src=\"\" class=\"img2\" />
 </div>
</div>
<div class=\"imgbox\">
 <div class=\"imgnum\">
  <input type=\"file\" class=\"filepath\" />
  <span class=\"close\">X</span>
  <img src=\"btn.png\" class=\"img1\" />
  <img src=\"\" class=\"img2\" />
 </div>
</div>
<div class=\"imgbox\">
 <div class=\"imgnum\">
  <input type=\"file\" class=\"filepath\" />
  <span class=\"close\">X</span>
  <img src=\"btn.png\" class=\"img1\" />
  <img src=\"\" class=\"img2\" />
 </div>
</div>
<div class=\"imgbox\">
 <div class=\"imgnum\">
  <input type=\"file\" class=\"filepath\" />
  <span class=\"close\">X</span>
  <img src=\"btn.png\" class=\"img1\" />
  <img src=\"\" class=\"img2\" />
 </div>
</div> <div class=\"imgbox\">
 <div class=\"imgnum\">
  <input type=\"file\" class=\"filepath\" />
  <span class=\"close\">X</span>
  <img src=\"btn.png\" class=\"img1\" />
  <img src=\"\" class=\"img2\" />
 </div>
</div>



<div class=\"imgbox1\">
 <div class=\"imgnum\">
  <input type=\"file\" class=\"filepath1\" />
  <span class=\"close1\">X</span>
  <img src=\"btn.png\" class=\"img11\" />
  <img src=\"\" class=\"img22\" />
 </div>
</div>

</div>

</body>
<script type=\"text/javascript\">
 $(function() {
  $(\".filepath\").on(\"change\",function() {
   alert($(\'.imgbox\').length);
   var srcs = getObjectURL(this.files[0]); //获取路径
   $(this).nextAll(\".img1\").hide(); //this指的是input
   $(this).nextAll(\".img2\").show(); //fireBUg查看第二次换图片不起做用
   $(this).nextAll(\'.close\').show(); //this指的是input
   $(this).nextAll(\".img2\").attr(\"src\",srcs); //this指的是input
   $(this).val(\'\'); //必须制空
   $(\".close\").on(\"click\",function() {
    $(this).hide();  //this指的是span
    $(this).nextAll(\".img2\").hide();
    $(this).nextAll(\".img1\").show();
   })
  })
 })




 function getObjectURL(file) {
  var url = null;
  if (window.createObjectURL != undefined) {
   url = window.createObjectURL(file)
  } else if (window.URL != undefined) {
   url = window.URL.createObjectURL(file)
  } else if (window.webkitURL != undefined) {
   url = window.webkitURL.createObjectURL(file)
  }
  return url
 };





 $(function() {
  $(\"#img\").on(\"change\",\".filepath1\",function() {
   //alert($(\'.imgbox1\').length);
   var srcs = getObjectURL(this.files[0]); //获取路径
   alert(srcs);
   //this指的是input
   /* $(this).nextAll(\".img22\").attr(\"src\",srcs); //this指的是input
    $(this).nextAll(\".img22\").show(); //fireBUg查看第二次换图片不起做用*/
   var htmlImg=\'<div class=\"imgbox1\">\'+
     \'<div class=\"imgnum1\">\'+
     \'<input type=\"file\" class=\"filepath1\" />\'+
     \'<span class=\"close1\">X</span>\'+
     \'<img src=\"btn.png\" class=\"img11\" />\'+
     \'<img src=\"\'+srcs+\'\" class=\"img22\" />\'+
     \'</div>\'+
     \'</div>\';

   $(this).parent().parent().before(htmlImg);
   $(this).val(\'\'); //必须制空
   $(this).parent().parent().prev().find(\".img11\").hide(); //this指的是input
   $(this).parent().parent().prev().find(\'.close1\').show();

   $(\".close1\").on(\"click\",function() {
    $(this).hide();  //this指的是span
    $(this).nextAll(\".img22\").hide();
    $(this).nextAll(\".img11\").show();
    if($(\'.imgbox1\').length>1){
     $(this).parent().parent().remove();
    }

   })
  })
 })

</script>

</html>

希望本文所述对大家学习javascript程序设计有所帮助。

本文地址:https://www.stayed.cn/item/20955

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。