H5对话框元素<dialog> 讲解

简介: 元素定义对话框或窗口,如点击按钮弹出的对话框、警告提示等。通过 `open` 属性控制可见性,`showModal()` 方法展示模态框。支持基本样式调整,如背景颜色和边框。兼容性详情参见 MDN 文档。

对话框元素

<dialog> HTML元素用来表示对话框或者其他交互式组件

使用场景:点击按钮 弹出对话框;警告提示信息框; 定义一个对话框、确认框或窗口...

方法:

Dialog 对象属性

属性 描述
open 设置或者返回对话窗口是否打开
returnValue 设置或者返回 dialog 的返回值

对话框默认是隐藏的,需要加上在<dialog>加上open属性

<dialog open></dialog>

Dialog 对象方法

方法 描述
close() 关闭对话窗口
show() 显示的对话框
showModal() 显示对话框,并使其成为最顶层的对话框

通过 showModel()方法来展示模态框

具体代码小demo演示:

HTML部分

<button class="btn show">显示对话框</button>
    <dialog>
        <p>我是一段测试文字用来占位置</p>
        <form method="dialog">
            <button class="btn ok" value="Yes">Yes</button>
            <button class="btn close" value="No">No</button>
        </form>
    </dialog>

CSS部分

 body {
   
   

            height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        dialog {
   
   
            width: 400px;
            height: 200px;
            border-radius: 20px;
            background-color: #62656e;
        }
        /* 修改模态框的背景样式*/
        dialog::backdrop {
   
   
            background-color: rgba(0, 0, 0, 0.6);
        }

        dialog p {
   
   
            color: aliceblue;
            text-align: center;
        }

        .btn {
   
   
            display: block;
            margin: 0 auto;
            width: 150px;
            height: 50px;
            background-color: black;
            cursor: pointer;
            font-size: 16px;
            color: aliceblue;
            border-radius: 10px;
        }

        form {
   
   
            margin-top: 80px;
            display: flex;
        }

JS部分

         //1.获取dialog 元素
        let dialog = document.querySelector('dialog')
        let show = document.querySelector('.show')
        // 2.给按钮添加点击事件  点击之后
        show.addEventListener('click', () => {
   
   
        // 调用dialog身上的方法showModal() 来显示模态框
            dialog.showModal()
        })

        dialog.addEventListener('close', () => {
   
   
        // 点击确认和取消按钮 返回指定的值,这里用的close事件
            console.log(dialog.returnValue);
        })

2c0a9ca681e6494490c0b9ed9cd08f56~tplv-k3u1fbpfcp-watermark.png

兼容性请看这里: 对话框元素 - HTML(超文本标记语言) | MDN (mozilla.org)

目录
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
深入探索智能问答:从检索到生成的技术之旅
深入探索智能问答:从检索到生成的技术之旅
926 0
|
JavaScript 机器学习/深度学习 UED
jQuery weui时间选择器datetimepicker只要年月日解决方案
只想选择年月日,jquery-weui建议使用日历但实际的需求如果选择生日等等,日历选择的用户体验很不好,所以进行源码修改,看下面颜色标注。 HTML部分 下面是JS部分 $("#birth").
5113 0
|
9月前
|
人工智能 分布式计算 调度
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
EMQ
|
物联网 Linux C语言
在 Windows 平台搭建 MQTT 服务
NanoMQ 有着强大的跨平台和可兼容能力,不仅可以用于以 Linux 为基础的各类平台,也为 Windows 平台提供了 MQTT 服务的新选择。
EMQ
436 82
在 Windows 平台搭建 MQTT 服务
|
JavaScript 前端开发 Java
TypeScript【接口】超简洁教程!再也不用看臭又长的TypeScript文档了!
【10月更文挑战第10天】TypeScript【接口】超简洁教程!再也不用看臭又长的TypeScript文档了!
|
Web App开发 前端开发 JavaScript
JavaScript动态渲染页面爬取——Selenium的使用(一)
JavaScript动态渲染页面爬取——Selenium的使用(一)
486 4
|
存储 消息中间件 JSON
DDD基础教程:一文带你读懂DDD分层架构
DDD基础教程:一文带你读懂DDD分层架构
|
移动开发 前端开发 JavaScript
页面手写签名实现:利用Canvas技术将签名保存为图片
页面手写签名实现:利用Canvas技术将签名保存为图片
569 0
HBuilderX使用uniapp中的video标签开发视频应用APP,出现视频覆盖<view>图层无法遮住等问题如何解决?
HBuilderX使用uniapp中的video标签开发视频应用APP,出现视频覆盖<view>图层无法遮住等问题如何解决?