2024 Web 新特性 - 使用 Popover API 创建弹窗

web,popover,api · 浏览次数 : 0

小编点评

Popover API 是一种声明式的方式来创建各种类型的弹窗,简化了Web开发者在实现弹出式菜单、提示框或信息卡片的过程。它具有以下特点: 1. 弹窗将出现在页面的最顶层,无需调整 z-index。 2. 点击弹窗区域外部将关闭弹出窗口并返回焦点。 3. 打开弹窗后,下一个制表符停止位置将位于弹窗内部。 4. 按下 esc 键或双击切换将关闭弹窗并返回焦点。 5. 将弹窗元素与弹窗触发器进行语义上的连接。 使用 Popover API 创建一个最基础的弹窗很简单,只需一个 button 按钮用于触发弹窗,和一个弹窗 div 元素。首先,给弹窗 div 元素添加 popover 属性,并给它设置一个唯一 id。然后,在给按钮的添加 popovertarget 属性,值设置为弹窗的 id。代码示例如下: ```html

我是一个包含一些信息的弹窗。按下 Esc 键或点击弹窗外部将我关闭

``` 通过以上示例,你可以轻松地使用 Popover API 创建一个基本的弹窗。同时,Popover API 还支持自定义关闭按钮,只需在 button 元素上添加 popovertarget 和 popovertargetaction 属性。例如: ```html

我是一个包含一些信息的弹窗。按下❌按钮即可将我关闭

``` 总之,Popover API 为Web开发者提供了一套标准化的方法来创建和控制弹出窗口,确保了跨浏览器的一致性和易用性。

正文

Popover API 为开发者提供了一种声明式的方式来创建各种类型的弹窗。目前已在所有三大浏览器引擎中可用,并正式成为 Baseline 2024 的一部分。

一直以来,我们在实现弹出式菜单、提示框或信息卡片时,往往依赖于各种JavaScript库或者自定义CSS样式来完成。虽然这些方法有效,但它们通常伴随着代码冗余、兼容性问题。Popover API正是为了简化这一过程而生,它为Web开发者提供了一套标准化的方法来创建和控制弹出窗口,确保了跨浏览器的一致性和易用性。

Popover API 弹窗的一些特点如下:

  1. 弹窗将出现在页面的最顶层,无需您调整z-index。
  2. 点击弹窗区域外部将关闭弹出窗口并返回焦点。
  3. 打开弹窗后,下一个制表符停止位置将位于弹窗内部。
  4. 按下esc键或双击切换将关闭弹窗并返回焦点。
  5. 将弹窗元素与弹窗触发器进行语义上的连接。

使用 Popover API 创建一个最基础的弹窗非常简单,只需要一个button 按钮用于触发弹窗,和一个弹窗 div 元素。

  • 首先,给弹窗 div 元素添加 popover 属性,并给它设置一个唯一 id 。
  • 然后,在给按钮的添加popovertarget属性,值设置为弹窗的id

代码如下:

<button popovertarget="my-popover">打开弹窗</button>

<div id="my-popover" popover>
  <p>我是一个包含一些信息的弹窗。 按下 <kbd>Esc</kbd> 键或点击弹窗外部将我关闭<p>
</div>

此时一个最简单的点击按钮显示弹窗功能就实现了。

演示效果如下:

 

其中属性 popover 如果不赋值,则等同于 popover="auto"auto值表示启用点击弹窗外部则自动关闭弹窗。如果设置popover="manual",则点击弹窗外部不会再自动关闭弹窗,此时你将需要自定义关闭按钮来触发弹窗的关闭。

例如:

<button popovertarget="my-popover" class="trigger-btn">打开弹窗</button>

<div id="my-popover" popover=manual>
  <p>我是一个包含一些信息的弹窗。按下❌按钮即可将我关闭<p>
  <button class="close-btn" popovertarget="my-popover" popovertargetaction="hide">
    <span aria-hidden="true">❌</span>
  </button>
</div>

演示效果如下:

 

此时,你会看到点击弹窗外部不会再自动关闭弹窗,点击自定义的关闭按钮才会关闭弹窗。

 

有关 popover 弹出窗口的 MDN 文档

与2024 Web 新特性 - 使用 Popover API 创建弹窗相似的内容:

2024 Web 新特性 - 使用 Popover API 创建弹窗

Popover API 为开发者提供了一种声明式的方式来创建各种类型的弹窗。目前已在所有三大浏览器引擎中可用,并正式成为 Baseline 2024 的一部分。

RCTF 2024 WEB wp

RCTF 2024 WEB wp 前言 赛后复现,proxy发现自己真是个呆b... what_is_love 首先拿key1,sql语句处有注入,可以盲注拿key1的值 import requests import string strings = string.digits + string.a

2024 CISCN WEB 部分wp

前言 第二天的revenge真是绷不住,出的很好,下次多出点revenge。 ezjava 简要介绍 sqlite jdbc...真的没想到,写文件覆盖写了半天,结果是个CVE...,给的很多东西都是幌子 原理是通过控制jdbc语句和sql语句的执行来达到加载恶意so/dll达成rce的目的,这两个

Django与前端框架协作开发实战:高效构建现代Web应用

title: Django与前端框架协作开发实战:高效构建现代Web应用 date: 2024/5/22 20:07:47 updated: 2024/5/22 20:07:47 categories: 后端开发 tags: DjangoREST 前端框架 SSR渲染 SPA路由 SEO优化 组件库

Django 安全性与防御性编程:如何保护 Django Web 应用

title: Django 安全性与防御性编程:如何保护 Django Web 应用 date: 2024/5/13 20:26:58 updated: 2024/5/13 20:26:58 categories: 后端开发 tags: CSRF XSS SQL Upload HTTPOnly Pa

.NET周刊【6月第1期 2024-06-02】

国内文章 一文带你了解.NET能做什么? https://www.cnblogs.com/Can-daydayup/p/18214473 .NET是一个免费、开源、跨平台的开发平台框架,广泛应用于桌面、Web、移动、云服务、游戏、物联网、大数据和人工智能等领域开发。它支持C#、Visual Basi

深入理解Django:中间件与信号处理的艺术

title: 深入理解Django:中间件与信号处理的艺术 date: 2024/5/9 18:41:21 updated: 2024/5/9 18:41:21 categories: 后端开发 tags: Django 中间件 信号 异步 性能 缓存 多语言 引言 在当今的Web开发领域,Djan

Django高级表单处理与验证实战

title: Django高级表单处理与验证实战 date: 2024/5/6 20:47:15 updated: 2024/5/6 20:47:15 categories: 后端开发 tags: Django表单 验证逻辑 模板渲染 安全措施 表单测试 重定向管理 最佳实践 引言: 在Web应用开

第一作者解读|我们这篇Nature Communication背后的故事

2024年7月16日,大暑将至,立秋不远。我们基于Python的转录组学全分析框架的文章——"OmicVerse: a framework for bridging and deepening insights across bulk and single-cell sequencing"——正式在

2024 Selenium10个替代品

随着自动化测试需求的不断增长,Selenium作为广泛使用的自动化测试工具,虽然功能强大,但也存在一些限制和挑战。在2024年, 越来越多的替代工具涌现,它们提供了更高效、更易用的解决方案。那么,哪些替代品值得我们关注呢? 在自动化测试领域,除了Selenium,还有哪些工具能够满足我们的需求,并且