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 查找新建元素代码
Jul 06 Javascript
jquery ajax 局部刷新小案例
Feb 08 Javascript
JavaScript 常见安全漏洞和自动化检测技术
Aug 21 Javascript
浅谈Node.js:理解stream
Dec 08 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
Jul 06 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
Jul 20 Javascript
利用CDN加速react webpack打包后的文件详解
Feb 22 Javascript
p5.js入门教程之小球动画示例代码
Mar 15 Javascript
原生JS封装_new函数实现new关键字的功能
Aug 12 Javascript
详解vuex commit保存数据技巧
Dec 25 Javascript
vue-element-admin 菜单标签失效的解决方式
Nov 12 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
Mar 02 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
S900/ ETON E1-XM 收音机
2021/03/02 无线电
PHP个人网站架设连环讲(三)
2006/10/09 PHP
Windows下的PHP5.0详解
2006/11/18 PHP
PHP 获取MySQL数据库里所有表的实现代码
2011/07/13 PHP
php+ajax无刷新分页实例详解
2015/12/07 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
JSON+JavaScript处理JSON的简单例子
2013/03/20 Javascript
纯文字版返回顶端的js代码
2013/08/01 Javascript
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
JS常用字符串处理方法应用总结
2014/05/22 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
Java设计中的Builder模式的介绍
2018/03/22 Javascript
JS非行间样式获取函数的实例代码
2018/06/05 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
2021/02/11 Vue.js
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
Python中正则表达式的用法实例汇总
2014/08/18 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
2017/05/31 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
LivingSocial英国:英国本地优惠
2019/02/22 全球购物
*p++ 自增p 还是p所指向的变量
2016/07/16 面试题
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
中华在我心中演讲稿
2014/09/13 职场文书
2014年稽查工作总结
2014/12/20 职场文书
协议书范文
2015/01/27 职场文书
世界地球日活动总结
2015/02/09 职场文书
大学升旗仪式主持词
2015/07/04 职场文书
【DOTA2】当街暴打?PSG LGD vs VG - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA