JS点击图片弹出文件选择框并覆盖原图功能的实现代码


Posted in Javascript onAugust 25, 2017

简单说下原理,把显示的图片的<img>标签 和上传文件的 <input> 标签放在同一个div下,设置<img>的大小和<input>的大小一样,<input> 设置透明度为0,用定位和设置优先级把input浮动在<img>上方,这样点击图片就能选择上传图片,选择完图片后获取图片地址,替换掉原来的默认图片就能实现覆盖原图功能。

js代码:

<script type="text/javascript" src="jquery1.8.3.min.js"></script> 
<script type="text/javascript"> 
 $(function() {   
  //建立一??可存取到?file的url 
  function getObjectURL(file) { 
   var url = null; 
   if (window.createObjectURL != undefined) { // basic 
    url = window.createObjectURL(file); 
   } else if (window.URL != undefined) { // mozilla(firefox) 
    url = window.URL.createObjectURL(file); 
   } else if (window.webkitURL != undefined) { // webkit or chrome 
    url = window.webkitURL.createObjectURL(file); 
   } 
   return url; 
  } 
  //获取点击的图片元素 
  var cdimg = $('.fileImgs1').children('img'); 
  //获取上传图片的 input 标签元素 
  var cdfile = $('.fileImgs1').children('input[type="file"]'); 
  //设置input 大小和图片一致 
  cdfile.css({'width':cdimg.css('width'),'height':cdimg.css('height')}); 
  //input透明度为0,定位,优先级比图片高 
  cdfile.css({'opacity':0,'position':'absolute','z-index':10}); 
  //判断input的图片文件改变则img的图片也替换为input选择的图片 
  cdfile.change(function() { 
    if (this.files && this.files[0]) { 
      var objUrl = getObjectURL(this.files[0]); 
      if (objUrl) { 
        $(this).siblings('img').attr("src", objUrl); 
      } 
    } 
  }); 
 }) 
</script>

HTML调用代码:

<body> 
<span style="white-space:pre"> </span><div class='fileImgs1'> 
    <input type="file" name='img4'> 
    <img src="getu1.png" style='width:145px;height:125px' alt=""> 
  </div> 
</body>

总结

以上所述是小编给大家介绍的JS点击图片弹出文件选择框并覆盖原图功能的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
基于jQuery.Validate验证库知识点的详解
Apr 26 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
Dec 04 Javascript
Javascript定义类(class)的三种方法详解
Mar 13 Javascript
javascript中alert()与console.log()的区别
Aug 26 Javascript
利用BootStrap弹出二级对话框的简单实现方法
Sep 21 Javascript
Mongoose中document与object的区别示例详解
Sep 18 Javascript
详解angularjs 学习之 scope作用域
Jan 15 Javascript
Vue 动态设置路由参数的案例分析
Apr 24 Javascript
详解vue-router导航守卫
Jan 19 Javascript
微信小程序上传多图到服务器并获取返回的路径
May 05 Javascript
vue+element实现表单校验功能
May 20 Javascript
Vue Element UI + OSS实现上传文件功能
Jul 31 Javascript
JavaScript数据类型的存储方法详解
Aug 25 #Javascript
使用JQ完成表格隔行换色的简单实例
Aug 25 #Javascript
Vue.js实现网格列表布局转换方法
Aug 25 #Javascript
Angular2 组件间通过@Input @Output通讯示例
Aug 24 #Javascript
Angular2 组件交互实例详解
Aug 24 #Javascript
使用jQuery实现页面定时弹出广告效果
Aug 24 #jQuery
探究react-native 源码的图片缓存问题
Aug 24 #Javascript
You might like
php中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
php上传图片类及用法示例
2016/05/11 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
Yii框架操作cookie与session的方法实例详解
2019/09/04 PHP
js常用代码段整理
2011/11/30 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
jquery文字填写自动高度的实现方法
2016/11/07 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
[00:12]DAC2018 天才少年转战三号位,他的SOLO是否仍如昔日般强大?
2018/04/06 DOTA
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
python获取多线程及子线程的返回值
2017/11/15 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
基于python实现学生管理系统
2018/10/17 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
Keras 使用 Lambda层详解
2020/06/10 Python
python用Configobj模块读取配置文件
2020/09/26 Python
印尼在线旅游门户网站:NusaTrip
2019/11/01 全球购物
C#实现启动一个进程
2016/10/01 面试题
中科软测试工程师面试题
2012/06/16 面试题
实习自荐信
2013/10/13 职场文书
婚礼主持结束词
2014/03/13 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
乡镇党建工作汇报材料
2014/08/14 职场文书
党员自我剖析材料
2014/08/31 职场文书
环卫个人总结
2015/03/03 职场文书
解决Django transaction进行事务管理踩过的坑
2021/04/24 Python