您现在的位置是:网站首页> 编程资料编程资料
使用HTML5原生对话框元素并轻松创建模态框组件html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
2021-09-01
998人已围观
简介 这篇文章主要介绍了使用HTML5原生对话框元素并轻松创建模态框组件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
HTML 5.2草案加入了新的dialog元素。但是是一种实验技术。
以前,如果我们想要构建任何形式的模式对话框或对话框,我们需要有一个背景,一个关闭按钮,将事件绑定在对话框中的方式安排我们的标记,找到一种将消息传递出去的方式对话......这真的很复杂。对话框元素解决了上述所有问题。
Bootstrap 模态框和原生模态框的对比
下面是一个bootstrap模态框的html结构:
下面是一个原生模态框的HTML结构:
基础的模态框样式
我们已经看到了对话框元素的最简单标记,您可能已经注意到open是上面对话框中的属性。将该属性添加到元素将强制显示对话框,否则将删除它。该对话框也将绝对定位在页面上。

上图展示了一个最基本的模态框样式。
打开浏览器可以查看到它的基本样式是这样的:
dialog { display: block; position: absolute; left: 0px; right: 0px; width: -webkit-fit-content; height: -webkit-fit-content; color: black; margin: auto; border-width: initial; border-style: solid; border-color: initial; border-image: initial; padding: 1em; background: white; }dialog元素还引入了一个新的伪类选择器::backdrop,通过浏览器查看到默认的::backdrop样式如下:
dialog::backdrop { position: fixed; top: 0px; right: 0px; bottom: 0px; left: 0px; background: rgba(0, 0, 0, 0.1); }设置对话框样式
我们可以像任何HTML元素一样设置dialog元素的样式,几乎所有的CSS样式都可以。通过::backdrop伪类选择器,我们可以用它来设置背景的样式。
例如:
dialog{ margin-top:200px; width:250px; height:250px; text-align:center; line-height:250px; border-radius: 4px; border: none; box-shadow: 0 0 15px lightgray; } dialog::backdrop { background: rgba(black, .5); }上面的样式效果如下图:

对话框操作 API
下面是一个基本的对话框,因为没有设置open属性,所以它不会在视觉上显示任何东西。您需要使用JavaScript API来显示/隐藏它:
dialog元素的.show()和.close()两个api分别是显示和关闭对话框,通过在DOM元素上使用这两个api,您可以显示和关闭对话框。
例如:
你可以传递一个参数给dialog.close()。通过监听dialog元素的close事件,该dialog.returnValue属性将返回给定的值。
如:
显示dialog对话框的另一个api是.showModal()
如果你不希望用户与对话框以外的其他页面元素对象进行交互,那么请使用.showModal()打开对话框而不是使用.show()。用.showModal()打开的对话框会有一个全窗口的半透明背景层,阻断用户与对话框之外的页面元素对象进行交互,同时对话框会默认显示在窗口正中间(上下左右都居中);而用.show()打开的对话框会默认显示在窗口顶部(可以通过css实现居中显示)。
关闭对话框后,close会触发一个事件。另外,用户可以通过输入“Escape”键来关闭模式对话框。这将激发cancel您可以取消使用的事件event.preventDefault()。
与表单集成使用
您可以使用form[method="dialog"]将表单与一个
此外,您可以使用该autofocus属性在弹出对话框时自动将焦点对准对话框内的窗体控件。
例如:
浏览器兼容性
桌面浏览器只有谷歌浏览器支持dialog的完整功能(到本博文发表时),要实现跨浏览器兼容请使用dialog-polyfill。
参考文献
参考文章:对话框元素演示
符本人开源项目
usuallyjs函数库:https://github.com/JofunLiang/usuallyjs
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- canvas学习笔记之2d画布基础的实现html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- Canvas 文本转粒子效果的实现代码详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
- web页面录屏实现html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- HTML5移动端开发遇见的东西移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法 HTML5移动端手机网站开发流程HTML5移动端开发中的Viewport标签及相关CSS用法解析整理HTML5移动端开发的常用触摸事件
- 基于 HTML5 WebGL 实现的垃圾分类系统HTML5 WebGL 实现民航客机飞行监控系统基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码基于 HTML5 WebGL 实现的医疗物流系统
- HTML5实现的震撼3D焦点图动画的示例代码HTML5自定义元素播放焦点图动画的实现html4和html5区别之如何在一个input上添加焦点实现代码
- HTML5 Canvas 破碎重组的视频特效的示例代码前端canvas动画如何转成mp4视频的方法canvas像素点操作之视频绿幕抠图video结合canvas实现视频在线截图功能canvas绘制视频封面的方法详解基于canvas的视频遮罩插件canvas与html5实现视频截图功能示例Canvas获取视频第一帧缩略图的实现
- 前端canvas水印快速制作(附完整代码)前端水印的简单实现代码示例手摸手教你用canvas实现给图片添加平铺水印的实现html5 canvas实现给图片添加平铺水印canvas 下载二维码和图片加水印的方法前端使用canvas生成盲水印的加密解密的实现
- canvas实现圆绘制的示例代码利用 Canvas实现绘画一个未闭合的带进度条的圆环使用html5 canvas绘制圆环动效canvas绘制圆角头像的实现方法详解canvas在圆弧周围绘制文本的两种写法详解html2canvas截图不能截取圆角图片的解决方案canvas实现圆形进度条动画的示例代码html5 canvas绘制矩形和圆形的实例代码通过HTML5 Canvas API绘制弧线和圆形的教程HTML5 Canvas中绘制椭圆的4种方法HTML5 Canvas绘制圆点虚线实例
- Html5 Canvas 实现一个“刮刮乐”游戏
