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 相关文章推荐
js表格分页实现代码
Sep 18 Javascript
js控制浏览器全屏示例代码
Feb 20 Javascript
BootStrap Fileinput初始化时的一些参数
Dec 30 Javascript
JavaScript高级函数应用之分时函数实例分析
Aug 03 Javascript
js中Generator函数的深入讲解
Apr 07 Javascript
记录一次开发微信网页分享的步骤
May 07 Javascript
vue实现下拉加载其实没那么复杂
Aug 13 Javascript
Vue发布订阅模式实现过程图解
Apr 30 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
May 01 Javascript
解决vuex数据页面刷新后初始化操作
Jul 26 Javascript
js实现简单商品筛选功能
Feb 02 Javascript
分享15个Webpack实用的插件!!!
Mar 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
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
2016/06/19 PHP
php的4种常用运行方式详解
2016/12/22 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
一个javascript参数的小问题
2008/03/02 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
jQuery弹出层始终垂直居中相对于屏幕或当前窗口
2013/04/01 Javascript
JS如何将数字类型转化为没3个一个逗号的金钱格式
2014/01/27 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
angularjs中ng-attr的用法详解
2016/12/31 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
基于vue2.0+vuex的日期选择组件功能实现
2017/03/13 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
Python笔记(叁)继续学习
2012/10/24 Python
python将字符串转换成数组的方法
2015/04/29 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
对python的unittest架构公共参数token提取方法详解
2018/12/17 Python
Python给图像添加噪声具体操作
2019/03/03 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
如何用Django处理gzip数据流
2021/01/29 Python
简述数组与指针的区别
2014/01/02 面试题
资产评估专业大学生求职信
2013/09/29 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
go 实现简易端口扫描的示例
2021/05/22 Golang
MySQL基于索引的压力测试的实现
2021/11/07 MySQL