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——表单应用范例
Feb 20 Javascript
javascript 获取页面的高度及滚动条的位置的代码
May 06 Javascript
js Html结构转字符串形式显示代码
Nov 15 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
Jan 08 Javascript
document.createElement()用法及注意事项(ff下不兼容)
Mar 13 Javascript
JS+CSS实现下拉列表框美化效果(3款)
Aug 15 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
Dec 08 Javascript
详解JavaScript基本类型和引用类型
Dec 09 Javascript
详解Bootstrap的iCheck插件checkbox和radio
Aug 24 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
Sep 04 Javascript
jQuery实现删除li节点的方法
Dec 06 Javascript
微信小程序开发实现消息推送
Nov 18 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
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
PHP常用的小程序代码段
2015/11/14 PHP
php基于jquery的ajax技术传递json数据简单实例
2016/04/15 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
Mootools 1.2教程 事件处理
2009/09/15 Javascript
JQuery AJAX提交中文乱码的解决方案
2010/07/02 Javascript
关于JavaScript的with 语句的使用方法
2011/05/09 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
关于img的href和src取变量及赋值的方法
2014/04/28 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
微信小程序 登录实例详解
2017/01/16 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
2019/05/13 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
Python利用递归实现文件的复制方法
2018/10/27 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
"序列点" 是什么
2016/07/29 面试题
2014年大学庆元旦迎新年活动方案
2014/03/09 职场文书
经贸专业毕业生求职信范文
2014/05/01 职场文书
蛋糕店创业计划书
2014/05/06 职场文书
公司演讲稿开场白
2014/08/25 职场文书
单位员工收入证明样本
2014/10/09 职场文书
酒店工程部岗位职责
2015/02/12 职场文书
新员工辞职信范文
2015/05/12 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
详解NodeJS模块化
2021/06/15 NodeJs