element-plus el-dialog 弹窗隐藏遮罩并且可以控制弹窗后的元素、点击、滚动、其他事件操作等

news2024/11/16 15:32:02

场景

el-dialog 隐藏遮罩并且可以控制弹窗后的元素、点击、滚动、其他事件操作,比如一个弹窗打开了,我要能控制弹窗后面的滚动、点击等等一系列事件。

修改方法

首先我们需要隐藏弹窗遮罩 :modal="false",并且给 el-dialog 弹窗添加一个 id(后面用于获取 dom 元素,当然你也可以给外层套个div,找第一个子元素就行)。

    v-model="modelDialogVisible"
    append-to-body
    draggable
    :modal="false"
    id="modelDialogRef"
    ref="modelDialogRef"
    :close-on-click-modal="false"
    align-center
    :before-close="handleClose"
    class="model-dialog"

在这里插入图片描述
从 dom 元素我们知道 el-dialog 的层级为三层,外面两层是遮罩,第三层才是真正的弹窗元素,因此,我们需要做的就是把外层最外层的遮罩事件去掉,保留最里面的。

pointer-events CSS 属性指定在什么情况下 (如果有) 某个特定的图形元素可以成为鼠标事件的 target。
auto:与pointer-events属性未指定时的表现效果相同,对于 SVG 内容,该值与visiblePainted效果相同
none:元素永远不会成为鼠标事件的target (en-US)。但是,当其后代元素的pointer-events属性指定其他值时,鼠标事件可以指向后代元素,在这种情况下,鼠标事件将在捕获或冒泡阶段触发父元素的事件侦听器。

给弹窗内容添加自定义样式 pointer-events: auto;

.model-dialog {
  pointer-events: auto;
}

在打开弹窗的时候,执行下面的代码,目的是将最外层的遮罩 pointer-events 修改。

 nextTick(() => {
   // 把弹窗父亲的父亲 dom 元素添加 pointer-events: none; 防止穿透
   const elDialog = document.getElementById('modelDialogRef');
   // @ts-ignore
   elDialog?.parentNode?.parentNode?.setAttribute('style', 'pointer-events: none;');
 });

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1270900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NB-IoT BC260Y Open CPU SDK⑤点亮一个LED

NB-IoT BC260Y Open CPU SDK⑤点亮一个LED 1、BC260Y gpio资源介绍2、相关API介绍3、调试信息串口打印3、实例分析 本章节将介绍BC260Y硬件GPIO相关操作 1、BC260Y gpio资源介绍 BC260Y-AA的sdk包中官方给出了16个可用IO 在ql_gpio.h文件中有定义如下/**********************…

Windows系统如何远程控制Realme手机?

realme使用的是realme UI系统。realme UI是realme研发的操作系统;realme UI 1.0基于安卓10系统,realme UI 2.0基于安卓11系统,realme UI 3.0基于安卓12系统。 对于安卓4.0及以上系统的手机,都可以通过软件AirDroid实现远程控制。 …

Python教程:装饰器的10个示例用法

Python装饰器是一种高级语法,它允许我们增强函数或方法的功能,而无需修改其原始代码。装饰器本质上是一个函数,它接收一个函数作为参数,并返回一个新的函数。这个新的函数可以包装原有函数,添加一些新的功能。 在Pyth…

Elasticsearch:对时间序列数据流进行降采样(downsampling)

降采样提供了一种通过以降低的粒度存储时间序列数据来减少时间序列数据占用的方法。 指标(metrics)解决方案收集大量随时间增长的时间序列数据。 随着数据老化,它与系统当前状态的相关性越来越小。 降采样过程将固定时间间隔内的文档汇总为单…

Java零基础——Redis篇

1.【熟悉】NoSQL的简介 1.1 什么是NoSQL NoSQL 是 Not Only SQL 的缩写,意即"不仅仅是SQL"的意思,泛指非关系型的数据库。强调Key-Value Stores和文档数据库的优点。 NoSQL产品是传统关系型数据库的功能阉割版本,通过减少用不到或…

JD-GUI和JAD对War包和Jar包进行反编译教学

其他系列文章导航 Java基础合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、JD-GUI下载及对Jar包的反编译 1.1选择自己的操作系统进行下载​编辑 1.2下载完后进行解压双击exe文件打开 1.3点击File菜单栏的Open File打开需要…

机器学习:DBSCAN算法(效果比K-means好)

基本概念 核心对象:以点为圆心半径为r的圆,如果圈里面的样本点大于给定的阈值(minPts),那么这个点就叫做核心点 直接密度可达:点p在q为圆心的圆内 密度可达: p1与p2直接密度可达,p2与p3直接密度可达&…

系列二十五、Spring设计模式之适配器模式

一、适配器模式 1.1、概述 适配器模式(Adapter Pattern)用于兼容不相关的接口之间,类似于一个桥梁,它结合了两个独立接口的功能,这种类型的设计属于结构型模式,为了方便大家伙的理解,我举个例子…

中台战略思想与架构总结

中台战略思想与架构总结 在2015年年中,马云带领阿里高管,拜访了游戏公司Supercell,以《部落战争》《海岛奇兵》《卡通农场》等游戏知名。 Supercell是一家典型的以小团队模式进行游戏开发的公司,一般来说两个员工,或…

佳易王羽毛球馆计时计费软件操作教程,软件可以自动计算费用,支持会员管理

一、前言(编程应用实例系列): 佳易王羽毛球馆计时计费软件操作教程,软件可以自动计算费用,支持会员管理 软件有试用版,可以下载试用,了解软件操作和软件功能。 软件试用版下载可以点击最下方…

手写VUE后台管理系统5 - 整合状态管理组件pinia

整合状态管理组件 安装整合创建实例挂载使用 pinia 是一个拥有组合式 API 的 Vue 状态管理库。 pinia 官方文档:https://pinia.vuejs.org/zh/introduction.html 安装 yarn add pinia整合 所有与状态相关的文件都放置于项目 src/store 目录下,方便管理 在…

Synchronized底层机制:偏向锁、轻量级锁与重量级锁及其锁升级过程

前言: 在Java并发编程中,synchronized关键字是用于实现线程同步的重要工具。在JVM中,synchronized的底层实现涉及到了偏向锁、轻量级锁和重量级锁这三种锁状态,以及锁升级过程。在之前的文章中介绍到过,这篇文章详细对…

【攻防世界-misc】[简单] 凯撒大帝在培根里藏了什么

1.下载文件,打开后是这样子的 2.根据题目提示说是有凯撒密码和培根密码,因为文件内容为AB形式,不符合凯撒条件,所以先用培根解,将文件内容复制,CTF在线工具-CTF工具|CTF编码|CTF密码学|CTF加解密|程序员工具…

使用Golang构建高性能网络爬虫

目录 一、Golang的特点 二、构建网络爬虫的步骤 三、关键技术和注意事项 使用协程进行并发处理 使用通道进行协程间的通信 合理控制并发数和处理速度 遵守网站使用协议和法律法规 防止被网站封禁或限制访问 优化网页解析和数据处理 异常处理和错误处理 日志记录和监控…

chrome vue devTools安装

安装好后如下图所示: 一:下载vue devTools 下载链接https://download.csdn.net/download/weixin_44659458/13192207?spm1001.2101.3001.6661.1&utm_mediumdistribute.pc_relevant_t0.none-task-download-2%7Edefault%7ECTRLIST%7EPaid-1-13192207…

Java实现飞翔的鸟小游戏

Java实现飞翔的鸟小游戏 1.准备工作 创建一个新的Java项目命名为“飞翔的鸟”,并在src中创建一个包命名为“com.qiku.bird",在这个包内分别创建4个类命名为**“Bird”、“BirdGame”、“Column”、“Ground”,并向需要的图片**素材导入…

运行启动vue项目报报错node: --openssl-legacy-provider is not allowed in NODE_OPTIONS解决

报错的问题就是package.json中的Scripts下的dev 解决方法就是要不升级你的应用代码,支持 新版本的node.js 要不就是删除SET NODE_OPTIONS--openssl-legacy-provider &&代码,如下代码即可正常运行起来

还在愁没项目?来瞧瞧这些另类赚钱方式

客套话不多说,直接上案例,这些都是正儿八经的真实案例,相信大家通过这些人的案例自然能摸索整理出一套属于自己的项目!摸索不出,也多多少少能受一些灵感上的启发。 小A是长期混B站的,大家称他为“B站搬运工…

echarts图表显示不全

图表显示是显示了,但是没有展示全部,一看控制台div的高度只有1px了,手动修改高度也只是拉伸图表,并没有按规定的尺寸展示 随之开始思考为什么呢 ? ? ? 因为 Echarts 的依赖是惰性的,需要手动设置resize&#xff0…

【Openstack Train安装】十三、创建实例

在先前的教程中,介绍了安装openstack及其相关组件的具体过程,本文介绍如何创建实例并完成访问。 在按照本教程操作之前,请确保完成以下配置: 【Openstack Train安装】一、虚拟机创建 【Openstack Train安装】二、NTP安装 【Op…