JS实现可视化文件上传


Posted in Javascript onSeptember 08, 2018

本文实例为大家分享了JS可视化文件上传的具体代码,供大家参考,具体内容如下

测试-Style

<style type="text/css">
    .imgbox,.imgbox1
    {
      position: relative;
      width: 200px;
      height: 180px;
      border: 1px solid #ddd;
      overflow: hidden;
    }
 
    .imgnum{
      left: 0px;
      top: 0px;
      margin: 0px;
      padding: 0px;
    }
    .imgnum input,.imgnum1 input {
      position: absolute;
      width: 200px;
      height: 180px;
      opacity: 0;
    }
    .imgnum img,.imgnum1 img {
      width: 100%;
      height: 100%;
    }
    .close,
    .close1 {
      color: red;
      position: absolute;
      right: 10px;
      top: 0;
      display: none;
    }
</style>

测试--HTML

<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>

JS: 需要引入jquery

<script type="text/javascript">
  $(function() {
    $(".filepath").on("change",function() {
      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();
      })
    })
  })
 
 
 
//关键代码:getObjectURL return url
  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
  };
 

//modify img
  $(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>

注:低版本IE不支持可视化

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js传值 判断
Oct 26 Javascript
IE6下CSS图片缓存问题解决方法
Dec 09 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
Aug 13 Javascript
JavaScript实现的多种鼠标拖放效果
Nov 03 Javascript
基于jquery实现日历签到功能
Sep 11 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
Dec 04 Javascript
用window.onerror捕获并上报Js错误的方法
Jan 27 Javascript
JavaScript实现复制内容到粘贴板代码
Mar 31 Javascript
js实现多图左右切换功能
Aug 04 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
Nov 18 Javascript
原生js实现电商侧边导航效果
Jan 19 Javascript
Mongoose经常返回e11000 error的原因分析
Mar 29 Javascript
js实现文件上传功能 后台使用MultipartFile
Sep 08 #Javascript
vue-router的HTML5 History 模式设置
Sep 08 #Javascript
vue移动端下拉刷新和上拉加载的实现代码
Sep 08 #Javascript
react 父子组件之间通讯props
Sep 08 #Javascript
js代码规范之Eslint安装与配置详解
Sep 08 #Javascript
vue弹窗插件实战代码
Sep 08 #Javascript
浅谈从React渲染流程分析Diff算法
Sep 08 #Javascript
You might like
第七章 php自定义函数实现代码
2011/12/30 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
php对mongodb的扩展(小试牛刀)
2012/11/11 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
2018/11/16 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
2019/04/17 Javascript
vue获取form表单的值示例
2019/10/29 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
解决vue-router 嵌套路由没反应的问题
2020/09/22 Javascript
[01:05:40]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第三场
2014/05/24 DOTA
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python 调用c语言函数的方法
2017/09/29 Python
使用实现XlsxWriter创建Excel文件并编辑
2018/05/04 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
django自定义模板标签过程解析
2019/12/14 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
2020/01/10 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
2020/10/21 Python
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
信息专业本科生个人的自我评价
2013/10/28 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
苦儿流浪记读书笔记
2015/07/01 职场文书
市级三好生竞选稿
2015/11/21 职场文书
乔迁新居祝福语
2019/11/04 职场文书
JavaScript实现栈结构详细过程
2021/12/06 Javascript