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 png图片(有含有透明)在IE6中为什么不透明了
Feb 07 Javascript
javascript操作html控件实例(javascript添加html)
Dec 02 Javascript
JQuery实现绚丽的横向下拉菜单
Dec 19 Javascript
AJAX和jQuery动态加载数据的实现方法
Dec 05 Javascript
Vue自定义指令介绍(2)
Dec 08 Javascript
详解Node.js项目APM监控之New Relic
May 12 Javascript
详解AngularJS1.x学习directive 中‘&amp; ’‘=’ ‘@’符号的区别使用
Aug 23 Javascript
js微信分享实现代码
Oct 11 Javascript
JavaScript中重名的函数与对象示例详析
Sep 28 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
Sep 29 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
Jun 19 Javascript
vue实现可拖拽的dialog弹框
May 13 Vue.js
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
国王的咖啡这么大来头,名字的由来是什么
2021/03/03 咖啡文化
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
2011/05/24 PHP
PHP代码维护,重构变困难的4种原因分析
2016/01/25 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
javascript编程起步(第三课)
2007/02/27 Javascript
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
2013/10/22 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
2015/08/03 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
详解vue2 $watch要注意的问题
2017/09/08 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
[57:47]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python递归实现汉诺塔算法示例
2018/03/19 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
python实现文本界面网络聊天室
2018/12/12 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
python自动下载图片的方法示例
2020/03/25 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
英国骑行、跑步、游泳、铁人三项运动装备专卖店:Wiggle
2016/08/23 全球购物
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
《梅兰芳学艺》教学反思
2014/02/24 职场文书
高等教育专业自荐信范文
2014/03/26 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
2014财务部年度工作总结
2014/12/08 职场文书
土建技术员岗位职责
2015/04/11 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python