对话框元素
<dialog>
HTML元素用来表示对话框或者其他交互式组件
使用场景:点击按钮 弹出对话框;警告提示信息框; 定义一个对话框、确认框或窗口...
方法:
Dialog 对象属性
属性 | 描述 |
---|---|
open | 设置或者返回对话窗口是否打开 |
returnValue | 设置或者返回 dialog 的返回值 |
对话框默认是隐藏的,需要加上在<dialog>
加上open
属性
<dialog open></dialog>
Dialog 对象方法
方法 | 描述 |
---|---|
close() | 关闭对话窗口 |
show() | 显示的对话框 |
showModal() | 显示对话框,并使其成为最顶层的对话框 |
通过 showModel()
方法来展示模态框
具体代码小demo演示:
HTML部分
代码语言:javascript复制<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部分
代码语言:javascript复制 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部分
代码语言:javascript复制 //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);
})
兼容性请看这里: 对话框元素 - HTML(超文本标记语言) | MDN (mozilla.org)