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 相关文章推荐
jquery animate 动画效果使用说明
Nov 04 Javascript
jquery中.add()的使用分析
Apr 26 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
Nov 06 Javascript
js实现div的切换特效上一个下一个
Feb 11 Javascript
iframe里使用JavaScript控制主页转向的方法
Apr 03 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
Apr 12 Javascript
text-align:justify实现文本两端对齐 兼容IE
Aug 19 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
Mar 03 Javascript
JavaScript头像上传插件源码分享
Mar 29 Javascript
基于AngularJS前端云组件最佳实践
Oct 20 Javascript
从零开始学习Node.js系列教程二:文本提交与显示方法
Apr 13 Javascript
vue-router history模式下的微信分享小结
Jul 05 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 flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
javascript整除实现代码
2010/11/23 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
2015/10/26 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
2020/11/09 Javascript
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
python实现多张图片拼接成大图
2019/01/15 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
2020/02/23 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
西安夏日科技有限公司Java笔试题
2013/01/11 面试题
乡镇挂职心得体会
2014/09/04 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
工作表现证明
2015/06/15 职场文书
科级干部培训心得体会
2016/01/06 职场文书
高二数学教学反思
2016/02/18 职场文书
解除合同协议书范本
2016/03/21 职场文书
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis
python解析json数据
2022/04/29 Python
Apache自带的ab压力测试工具的实现
2022/07/23 Servers