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


Posted in Javascript onDecember 31, 2015

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

运行效果图:

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程序设计有所帮助。

Javascript 相关文章推荐
js function定义函数使用心得
Apr 15 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
Mar 13 Javascript
获取中文字符串的实际长度代码
Jun 05 Javascript
jquery制作属于自己的select自定义样式
Nov 23 Javascript
实例详解JSON数据格式及json格式数据域字符串相互转换
Jan 07 Javascript
使用jQuery制作基础的Web图片轮播效果
Apr 22 Javascript
Webpack性能优化 DLL 用法详解
Aug 10 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
Sep 10 Javascript
fetch 如何实现请求数据
Dec 20 Javascript
taro 实现购物车逻辑的实例代码
Jun 05 Javascript
vue.js实现照片放大功能
Jun 23 Javascript
详解Vue的mixin策略
Nov 19 Vue.js
分享几种比较简单实用的JavaScript tabel切换
Dec 31 #Javascript
jQuery+ajax实现文章点赞功能的方法
Dec 31 #Javascript
jQuery实现的超简单点赞效果实例分析
Dec 31 #Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
Dec 31 #Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
Dec 31 #Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
Dec 31 #Javascript
javascript数据类型验证方法
Dec 31 #Javascript
You might like
中国广播史趣谈 — 几个历史第一次
2021/03/01 无线电
PHP获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
深入理解PHP原理之异常机制
2010/08/21 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
php搜索文件程序分享
2015/10/30 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
php进行md5加密简单实例方法
2019/09/19 PHP
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
JavaScript中的Math.LN2属性用法详解
2015/06/12 Javascript
js验证框架之RealyEasy验证详解
2016/06/08 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
浅谈React + Webpack 构建打包优化
2018/01/23 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
2019/02/28 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
使用Angular9和TypeScript开发RPG游戏的方法
2020/03/25 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
Python上下文管理器全实例详解
2019/11/12 Python
Django使用消息提示简单的弹出个对话框实例
2019/11/15 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
应届生保险求职信
2013/11/11 职场文书
2014年学习全国道德模范事迹思想汇报
2014/09/15 职场文书
公司慰问信范文
2015/03/23 职场文书
创业计划书之网吧
2019/10/10 职场文书
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python