点击图片弹出文件选择框并覆盖原图功能

简单说下原理,把显示的图片的<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>
	<div class='fileImgs1'>
		<input type="file" name='img4'>
		<img src="getu1.png" style='width:145px;height:125px' alt="">
	</div>
</body>



  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值