当前位置: 首页 > news >正文

Vue3+Element Plus:使用el-dialog,对话框可拖动,且对话框弹出时仍然能够在背景页(对话框外部的页面部分)上进行滚动以及输入框输入信息

【需求】
使用Element Plus中的el-dialog默认是模态的(即它会阻止用户与对话框外部的元素进行交互),对话框弹出时仍然能够在背景页(对话框外部的页面部分)上进行滚动以及输入框输入信息,且对话框可拖动

【思路】

  • 设置el-dialog属性draggable为true,开启可拖动功能
  • 设置el-dialog属性modal为false,关闭遮罩层样式
  • 设置el-dialog属性lock-scroll为false,在 Dialog 出现时将 body 解除滚动锁定
  • 设置el-dialog属性close-on-click-modal为false,不可以通过点击 modal 关闭 Dialog
  • 添加el-dialog属性modal-class,遮罩的自定义类名,设置为pointer-events: none
  • 添加el-dialog属性class,Dialog 的自定义类名,设置为pointer-events: auto

【示例代码】

<template><el-button plain @click="dialogVisible = true">打开弹出框</el-button><ul><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li><el-input v-model="backgroundInput" placeholder="在背景页输入"></el-input></li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li><li>6</li></ul><div><el-dialogv-model="dialogVisible"title="标题"width="500"draggable:modal="false":lock-scroll="false":close-on-click-modal="false"modal-class="modal-wrap"class="dialog-wrap"><span>content区域</span><template #footer><div class="dialog-footer"><el-button @click="dialogVisible = false">取消</el-button><el-button type="primary" @click="dialogVisible = false">确定</el-button></div></template></el-dialog>
</div>
</template><script lang="ts" setup>
import { ref } from 'vue'const dialogVisible = ref(false)
const backgroundInput = ref('')</script>
<style scoped>
:deep(.modal-wrap) {pointer-events: none !important;
}
:deep(.dialog-wrap) {pointer-events: auto !important;
}
</style>

【效果】

在这里插入图片描述

【注意】

但请注意,尽管技术上可行,但在实际应用中一般不推荐将对话框设置为非模态,因为这可能会导致意外的交互。所以如果需要在对话框中收集用户输入,最好是在对话框内部添加相应的表单元素。


http://www.mrgr.cn/news/28320.html

相关文章:

  • 【ARM Coresight OpenOCD 系列 5 -- arp_examine 使用介绍】
  • 计算机视觉 ---常见图像文件格式及其特点
  • JDBC-Mysql 时区问题详解
  • 【阅读记录-章节2】Build a Large Language Model (From Scratch)
  • 任何使用 Keras 进行迁移学习
  • GitLab 如何降级?
  • 一个有趣的“苦无”测试探针笔的设计
  • Python Pyvis库创建交互式网络图 高级功能详解
  • 【Python基础】Python 装饰器(优雅的代码增强工具)
  • STM32之FMC—扩展外部 SDRAM
  • SpringBoot 消息队列RabbitMQ 消息可靠性 数据持久化 与 LazyQueue
  • Java读取寄存器数据的方法
  • 53. 最大子数组和
  • 微信视频号导出视频软件
  • Python 课程12-Python 自动化应用
  • 【思博伦】史上最详细思博伦测试仪使用教程精讲(三)!图解超赞超详细!!!
  • 二叉树OJ题——另一棵树的子树
  • 【Linux篇】TCP/IP协议(笔记)
  • asp.net core调用wps实现word转pdf的方法
  • A+B P1001 A+B Problem
  • 20240916 每日AI必读资讯
  • 认知杂谈68《燃爆!兄弟萌不可错过的人生开挂宝典》
  • OJ在线评测系统 后端项目初始化 Springboot项目通用模版讲解
  • 2025秋招LLM大模型多模态面试题(七)- 思维链CoT
  • 【我的 PWN 学习手札】Unsortedbin Attack
  • 【苍穹外卖】总结