HTML5新元素dialog

dialog是html5.2新增的元素,功能就是常见的对话框功能,基本情况下不需要额外编写对话框组件。

基本使用:
调用dialog元素的close()open()方法实现对话框的打开和关闭,showModal可以打开模态框

为dialog元素绑定close事件监听,当对话框关闭会触发此事件。

<dialog id='myDialog'>
  <p>
    hello dialog
  </p>
</dialog>
<button id='openBtn'>Open dialog</button>
<button id='closeBtn'>Close dialog</button>

<script>
var openBtn = document.querySelector('#openBtn');
var closeBtn = document.querySelector('#closeBtn');
var dialog = document.querySelector('#myDialog')
openBtn.addEventListener('click', function(){
    dialog.show();
})

closeBtn.addEventListener('click', function(){
    dialog.close();
})
</script>

示例地址: https://jsfiddle.net/justforuse/tp05Lu4o/11/

可以自定义模态框遮罩层样式:

<style>
    dialog::backdrop {
        background-color: red;
        opacity: 0.1;
    }
</style>

可以自定义对话框关闭携带的参数值

innerCloseBtn.onclick = function(){

    dialog.close(input.value);
}


dialog.addEventListener('close', function(e){
    alert('you say ' + e.target.returnValue);
})

对于dialog内部的form元素,需设置method="dialog"可默认阻止页面跳转,此时dialog的close事件returnValue为submit元素的value值

参考:https://developers.google.com/web/updates/2013/09/dialog-element-Modals-made-easy
https://stackoverflow.com/questions/25864259/how-to-close-the-new-html-dialog-tag-by-clicking-on-its-backdrop?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

兼容性较差,目前只有chrome支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值