遮罩层按钮事件失效

项目场景:

鼠标悬浮在图片上时,显示删除按钮。点击完成删除操作,

在这里插入图片描述

问题描述:

实现完页面效果时,点击删除标识不能触发删除事件。

原因分析:

可能是遮罩层,挡住了按钮事件。

解决方案:

  1. 在遮罩层添加pointer-events:none;样式

    .mask{
        position:absolute;
        background:rgba(101,101,101,0.6);
        color:#ebe3e3;
        opacity: 0;
        top: 0;
        right: 0;
        width: 100%;
        height: 100%;
        border-radius: 10px;
        pointer-events:none;
    }
    
  2. 在点击元素上,添加pointer-events:auto样式

    <i class="el-icon-delete" style="pointer-events:auto" @click="adjustment_del(index)"></i></h3>
    

完整代码

			<el-dialog title="调整图片" :visible.sync="adjustmentDialog" width="30%">
				<div style="height: 15vw;width: 100%;overflow:auto;">
					<ul class="list" v-infinite-scroll="this.adjustment_loading" infinite-scroll-disabled="adjustment_disabled">
						<li v-for="(entity,index) in adjustmentList.list" 
							style="list-style-type: none; position:relative;flex-direction:row;">
							<div class="adjustment_img" style="width:auto;height: 100%;padding: 2px;">
								<img :src="entity.path" style="width:100%; height:100%;object-fit: cover;"
									class="mirrorRotateVertical" alt="pavement-image">
								<div class="mask" >
									<h3><i class="el-icon-delete" style="pointer-events:auto" @click="adjustment_del(index)"></i></h3>
								</div>
								<span v-html="entity.no" class="img_span"></span>
							</div>
						</li>
					</ul>
					<el-row style="height: 60px" v-if="adjustmentList.loading" v-loading="adjustmentList.loading"
						element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading"></el-row>
					<div v-if="adjustmentList.noMore" class="image-slot">
						<span>暂无数据</span>
					</div>
				</div>
			</el-dialog>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Element UI的el-upload组件可以用于文件上传,并且支持文件预览功能。在使用el-upload组件时,你可以通过设置属性来启用文件预览功能。 首先,确保你已经正确引入了Element UI库和el-upload组件。然后,在你的代码中使用el-upload组件,并设置以下属性: 1. 设置`action`属性为文件上传的接口地址。 2. 设置`show-file-list`属性为`false`,以隐藏默认的文件列表展示。 3. 设置`on-success`属性为一个回调函数,用于处理文件上传成功后的逻辑。 4. 设置`before-upload`属性为一个回调函数,用于在文件上传之前进行一些操作,比如文件预览。 5. 在`before-upload`回调函数中,可以通过`file`参数获取到当前上传的文件对象。你可以使用`FileReader`对象来读取文件内容,并将其显示在页面上。 下面是一个示例代码: ```html <template> <el-upload class="upload-demo" action="/your-upload-api" :show-file-list="false" :before-upload="handleBeforeUpload" :on-success="handleSuccess" > <el-button size="small" type="primary">点击上传</el-button> </el-upload> </template> <script> export default { methods: { handleBeforeUpload(file) { // 使用FileReader读取文件内容并显示预览 const reader = new FileReader(); reader.onload = (e) => { // 在页面上显示文件预览 const preview = document.createElement('img'); preview.src = e.target.result; document.body.appendChild(preview); }; reader.readAsDataURL(file); // 返回false以阻止文件上传 return false; }, handleSuccess(response) { // 文件上传成功后的处理逻辑 console.log('文件上传成功', response); }, }, }; </script> ``` 这样,当用户选择文件后,会触发`before-upload`回调函数,你可以在该函数中读取文件内容并显示预览。然后,文件会被阻止上传,直到你处理完预览逻辑后再手动触发文件上传。 希望以上信息对你有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值