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 相关文章推荐
单击复制文字兼容各浏览器的完美解决方案
Jul 04 Javascript
jquery新的绑定事件机制on方法的使用方法
Apr 15 Javascript
JS 打印功能代码可实现打印预览、打印设置等
Oct 31 Javascript
javascript控制层显示或隐藏的方法
Jul 22 Javascript
bootstrap学习笔记之初识bootstrap
Jun 21 Javascript
EasyUI 结合JS导出Excel文件的实现方法
Nov 10 Javascript
iframe与主框架跨域相互访问实现方法
Sep 14 Javascript
JS实现的文件拖拽上传功能示例
May 21 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
Sep 14 Javascript
elementUI Tree 树形控件的官方使用文档
Apr 25 Javascript
微信小程序缓存过期时间的使用详情
May 12 Javascript
使用vuex-persistedstate本地存储vuex
Apr 29 Vue.js
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
9个PHP开发常用功能函数小结
2011/07/15 PHP
深入掌握include_once与require_once的区别
2013/06/17 PHP
php根据年月获取季度的方法
2014/03/31 PHP
php商品对比功能代码分享
2015/09/24 PHP
PHP书写格式详解(必看)
2016/05/23 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
PHP创建自己的Composer包方法
2018/04/09 PHP
php实现文章评论系统
2019/02/18 PHP
JavaScript 继承详解(二)
2009/07/13 Javascript
js 分栏效果实现代码
2009/08/29 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
基于Vue实例对象的数据选项
2017/08/09 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
VUE脚手架具体使用方法
2019/05/20 Javascript
微信小程序swiper左右扩展各显示一半代码实例
2019/12/05 Javascript
[04:23]DOTA2上海特锦赛小组赛第一日 TOP10精彩集锦
2016/02/27 DOTA
Python 解析XML文件
2009/04/15 Python
Python遍历zip文件输出名称时出现乱码问题的解决方法
2015/04/08 Python
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
python模块smtplib实现纯文本邮件发送功能
2018/05/22 Python
Python测试模块doctest使用解析
2019/08/10 Python
Tensorflow 实现释放内存
2020/02/03 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
教师批评与自我批评总结
2014/10/16 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
趣味运动会通讯稿
2015/07/18 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis
手把手教你导入Go语言第三方库
2021/08/04 Golang