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 相关文章推荐
JavaScript 程序编码规范
Nov 23 Javascript
从零开始学习jQuery (十) jQueryUI常用功能实战
Feb 23 Javascript
js调用webservice中的方法实现思路及代码
Feb 25 Javascript
JavaScript中解析JSON数据的三种方法
Jul 03 Javascript
JavaScript编程中布尔对象的基本使用
Oct 25 Javascript
Bootstrap零基础学习第一课之模板
Jul 18 Javascript
laydate.js日期时间选择插件
Jan 04 Javascript
将鼠标焦点定位到文本框最后(代码分享)
Jan 11 Javascript
bootstrap实现的自适应页面简单应用示例
Mar 09 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
May 08 Javascript
Vue2.0 v-for filter列表过滤功能的实现
Sep 07 Javascript
JavaScript使用ul中li标签实现删除效果
Apr 15 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读取javascript设置的cookies的代码
2010/04/12 PHP
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
2011/08/23 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
2011/12/14 PHP
php smarty模板引擎的6个小技巧
2014/04/24 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
js和php如何获取当前url的内容
2013/09/22 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
详解Vue爬坑之vuex初识
2017/06/14 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
vue+animation实现翻页动画
2020/06/29 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
Python牛刀小试密码爆破
2011/02/03 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
django_orm查询性能优化方法
2018/08/20 Python
小白入门篇使用Python搭建点击率预估模型
2018/10/12 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
python中time包实例详解
2021/02/02 Python
使用Html5 Stream开发实时监控系统
2020/06/02 HTML / CSS
雅诗兰黛美国官网:Estee Lauder美国
2016/07/21 全球购物
美国最大的电子宠物训练产品制造商:PetSafe
2018/10/12 全球购物
大学生大二自我鉴定
2013/10/28 职场文书
经管应届生求职信
2013/11/17 职场文书
大学生标准推荐信范文
2013/11/25 职场文书
小学英语教学反思案例
2014/02/04 职场文书
医学类个人求职信范文
2014/02/05 职场文书
党员剖析材料范文
2014/09/30 职场文书