用加号图标代替input type=file实现添加文件,清空input file

在这里插入图片描述在这里插入图片描述
效果图如上,通过点击该加号图片可以实现input选择文件,原理即在该图片上面写了个input隐藏,在图片点击事件中添加input的模拟点击。

<input class="mui-hidden" type="file" id="inputBox" accept="image/*" capture="camera">//input
<div id="photo" class="photo" @click="choosePhoto"></div>//加号图标
<div id="remove" class="remove" style="display: none;"></div>//删除图标

图片点击事件

choosePhoto(){
  var input = mui("#inputBox")[0];
   input.click();//模拟点击
   input.addEventListener("change",function(){ //监听input变化事件
       var reader = new FileReader();
       reader.readAsDataURL(input.files[0]);
       reader.onload = function(){
           //读取完成后,数据保存在对象的result属性中,直接赋值给src可实现预览
           var str = '';
           str = '<img id="waste_img" class="waste_img" src="'+this.result+'" />';
           mui('#photo')[0].insertAdjacentHTML('beforeBegin',str);
           mui('#photo')[0].style.display='none';
           mui('#remove')[0].style.display='';
       }
   })
}

删除点击事件(同时利用重建input实现清空file)

  	mui('#remove')[0].addEventListener('tap',function(){
   		var btnArray = ['否', '是'];
           mui.confirm('确认删除?', '温馨提示', btnArray, function(e) {
               if (e.index == 1) {
                    obj = mui('#waste_img')[0];
	        		obj.parentNode.removeChild(obj);
	        		mui('#photo')[0].style.display='';
	        		mui('#remove')[0].style.display='none';
	        		var file =mui("#inputBox")[0];
		            file.outerHTML = file.outerHTML;
               } else {
                   return;
               }
           },'div')
   	})

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿S先森丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值