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 嵌套函数指向this对象错误的解决方法
Mar 15 Javascript
Jquery调用webService远程访问出错的解决方法
May 21 Javascript
js实现单行文本向上滚动效果实例代码
Nov 28 Javascript
JavaScript学习笔记之数组随机排序
Mar 23 Javascript
三种方式实现瀑布流布局
Feb 10 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
Mar 15 Javascript
仿京东快报向上滚动的实例
Dec 13 Javascript
详解vue表单——小白速看
Apr 08 Javascript
浅谈bootstrap layer.open中end的使用方法
Sep 12 Javascript
JavaScript实现图片轮播特效
Oct 23 Javascript
详解Webpack抽离第三方类库以及common解决方案
Mar 30 Javascript
jQuery实现动态加载瀑布流
Sep 01 jQuery
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+Html+缓存
2006/11/25 PHP
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
php生成略缩图代码
2012/07/16 PHP
PHP生成随机用户名和密码的实现代码
2013/02/27 PHP
php文件下载处理方法分析
2015/04/22 PHP
PHP使用Pear发送邮件(Windows环境)
2016/01/05 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
javascript中的startWith和endWith的几种实现方法
2013/05/07 Javascript
js中function()使用方法
2013/12/24 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
AngularJS手动表单验证
2016/02/01 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
Bootstrap如何激活导航状态
2017/03/22 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
JS中关于正则的巧妙操作
2017/08/31 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
微信小程序学习之自定义滚动弹窗
2020/12/20 Javascript
Python异常处理操作实例详解
2018/05/10 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
2019/12/11 Python
Python字符串、列表、元组、字典、集合的补充实例详解
2019/12/20 Python
纯CSS实现设置半个字符的样式
2014/07/03 HTML / CSS
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
SKECHERS官方旗舰店:美国舒适运动休闲品牌
2017/12/22 全球购物
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
20岁生日感言
2014/01/13 职场文书
巡警年度自我鉴定
2014/02/21 职场文书
法律系毕业生自荐信范文
2014/03/27 职场文书
我读书我快乐演讲稿
2014/05/07 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
实习介绍信模板
2015/01/30 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书