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 相关文章推荐
用Javascript数组处理多个字符串的连接问题
Aug 20 Javascript
js跑步算法的实现代码
Dec 04 Javascript
动态添加option及createElement使用示例
Jan 26 Javascript
jQuery子属性过滤选择器用法分析
Feb 10 Javascript
JavaScript获取浏览器信息的方法
Nov 20 Javascript
利用Angularjs和bootstrap实现购物车功能
Aug 31 Javascript
JS生成一维码(条形码)功能示例
Jan 19 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
May 02 Javascript
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
vue使用better-scroll实现滑动以及左右联动
Jun 30 Javascript
vue+elementUI实现简单日历功能
Sep 24 Javascript
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
Jun 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
默默简单的写了一个模板引擎
2007/01/02 PHP
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
js判断两个日期是否相等的方法
2013/09/10 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
2014/01/10 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
js打造数组转json函数
2015/01/14 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
Treegrid的动态加载实例代码
2016/04/29 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
js实现拖拽功能
2017/03/01 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
微信小程序 action-sheet 反馈上拉菜单简单实例
2017/05/11 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
python 列表中[ ]中冒号‘:’的作用
2019/04/30 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
2019/08/05 Python
python异常处理try except过程解析
2020/02/03 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
MYSQL基础面试题
2012/05/13 面试题
大学班长的职责
2014/01/27 职场文书
西式婚礼主持词
2014/03/13 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
2014年项目工作总结
2014/11/24 职场文书
行政后勤人员工作计划应该怎么写?
2019/08/16 职场文书