Popver API VS 对话框模态:相同但不同
我正在阅读一些科技新闻博客,偶然发现标题 Popover API 登陆 Baseline。我很困惑,在我最近深入前端开发期间,我最近很难习惯在 HTML 中使用 Elements。在浏览博客时,我一直对到目前为止我如何使用该元素感到困惑。
长话短说
选择对于:
- 需要用户焦点的模态弹出窗口
- 辅助功能和键盘交互
选择弹出窗口:
- 带灯光关闭的非模态弹出窗口
- 用最少的代码轻松实现
元素
根据 MDN 对话框元素
HTML 元素表示模式或非模式对话框或其他交互式组件,例如可关闭的警报、检查器或子窗口。
当网站需要引起用户对重要事物的注意时,通常会在内容上使用和显示 A。即订阅时事通讯、请求(更像是强制)禁用广告拦截器或接受条款和条件。
元素作为模态
由于您可能在多个网站上多次遇到过,其中一些弹出窗口将在整个屏幕上绘制,同时模糊背景或禁用背景并使用户仅将注意力集中在手头的任务上,用户必须关闭(仅在允许的情况下)弹出窗口或输入所需的信息以使其消失。这种行为称为“元素作为模态”。这些模态元素显示在页面的顶层。
//To open dialog as a modal. dialog.showModal(); // To close the dialog. dialog.close();
元素可以使用 esc 键关闭。键盘用户期望这种行为需要维护并由浏览器提供。如果打开了多个模式对话框,则只有最后一个对话框将使用 esc 键关闭。
作为非模态元素
您可能并不总是希望阻止用户使用您的网页的自然流程,停止执行其他所有操作并专注于您想要显示的内容,但仍然是您的内容,例如 toast 通知、cookie 同意或一般工具提示信息。应出现在页面的顶层,位于用户可以或不能交互的任何其他内容之上。这些类型的弹出窗口称为非模式弹出窗口。用户可以手动关闭它们,或者通常时间会自行消失。这些非模态对话框仍然显示在页面的顶层,但可以使用 z-index 控制它们的优先级,并且模态元素将采用比此更高的 z-index 并使其不可访问。
//To open dialog as a modal. dialog.show(); // To close the dialog. dialog.close();
代码示例
一些问题
我很难掌握非模态元素的工作和使用。根据我的说法,非模态元素的行为不一致,需要 Javascript 代码来处理以下情况:
- 没有简单的解雇功能。单击模型外部不会关闭 .
- esc 键不会关闭并且需要 Javascript 来处理该场景。
- 如果你想在顶层绘制,需要手动管理z-index。
令我惊讶的是,popover API 回答或修复了这些问题以及更多......
弹出窗口API
popover 是可以添加到任何 HTML 属性中的属性。这是一个例子。
<button popovertarget="mypopover">Toggle the popover</button> <div id="mypopover" popover>Popover content</div>
popover 和
弹出窗口和之间的主要区别elements 的特点是弹出窗口始终是非模态的。 元素带有一个 role=dialog 属性,该角色属性附加到各种 HTML 元素并以某种方式运行。即 h1 具有标题角色 a 具有锚/链接角色。此角色用于确定并帮助屏幕阅读器等辅助技术确定元素。但是,弹出框是 HTML 元素的一个属性,因为它没有附加默认角色。这有助于
popover 属性可以用最少的代码来使用,虽然它可以使用 Javascript 进行控制,但并不像
popover 可以有 2 个特征:
1.popover=auto:具有轻解功能,无需JS交互。
2.popover=manual:需要Javascript交互,例如单击按钮或计时器来显式关闭它。
popover 始终显示在顶层,无需显式设置 z-index。
代码示例:
你可以看到我几乎不需要 Javascript 代码就可以实现相同的行为。设计和管理各种弹出窗口变得更加容易。
一些设计注意事项
popover 可以有:使用 CSS 设置背景,可用于模糊或灰色 popover 的背景,但这不会消除它的光消除功能,并且如果 pop- 则用户仍然可以单击外部并与网页的其他元素进行交互。在确定何时选择弹出框而不是
这里要考虑的主要问题是:正在显示的组件是目前唯一应该获得焦点的东西吗?可以允许用户与其他东西交互吗?
结论
总之,元素和弹出窗口 API 提供了在 Web 应用程序中创建交互式弹出窗口的多种选项。通过了解它们的独特特征和用例,您可以做出明智的决策,以增强用户体验并简化您的开发流程。
参考
- 比较 Popover API 和元素
- 对话框和弹出窗口看起来很相似。它们有何不同?
- Popover API 登陆 Baseline
以上是Popver API VS 对话框模态:相同但不同的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。
