首页 > 其他分享 >2024 Web 新特性 - 使用 Popover API 创建弹窗

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

时间:2024-06-07 11:33:49浏览次数:11  
标签:Web 2024 Popover API 关闭 按钮 popover 弹窗

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 如果不赋值,则等同于 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 属性制作弹窗,自定义关闭按钮 - 在线演示​  

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

 

有关 popover 弹出窗口的 MDN 文档

标签:Web,2024,Popover,API,关闭,按钮,popover,弹窗
From: https://www.cnblogs.com/liuhangui/p/18236894/web-api-popover

相关文章

  • 打卡信奥刷题(60)用Scratch图形化工具信奥P10424 [普及组] [蓝桥杯 2024 省 B] 好数,写
    [蓝桥杯2024省B]好数题目描述一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位……)上的数字是奇数,偶数位(十位、千位、十万位……)上的数字是偶数,我们就称之为“好数”。给定一个正整数N......
  • PHP实名认证接口开发示例、银行卡实名认证API
    在互联网技术多元化、高速的发展下,催生出在挑战中不断奋勇前进的互联网企业。但不能忽视的是,互联网技术的快速迭代也会使部分企业在冲击中败下阵来,面临淘汰的危机。随着O2O、共享经济等新兴商业形式的兴起,企业对实名认证业务的数据形式和数据质量也有了更高的要求。这一现实警......
  • 上海市青少年算法2024年5月月赛(丙组)
    上海市青少年算法2024年5月月赛(丙组)T1加法的进位题目描述给定两个整数a与b,请计算在十进制加法过程中,a+b产生了多少次进位。输入格式第一行:单个整数表示a。第二行:单个整数表示b。输出格式单个整数:表示发生进位的次数。数据范围1≤a,b≤1,000,000,000样例数据......
  • 调用文心一言API询问httpx的使用方法2
    [importrequestsimportjsondefget_access_token():url="https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=输入自己的id&client_secret=输入自己id的密码"payload=json.dumps("")headers={"Content-Typ......
  • 调用文心一言API询问httpx的使用方法
    importrequestsimportjsondefget_access_token():url="https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=输入自己的id&client_secret=输入自己id的密码"payload=json.dumps("")headers={"Content-Type......
  • API接口:企业业务中的核心驱动与稳定基石
    随着信息技术的飞速发展,API接口在企业业务中扮演着越来越重要的角色。API接口不仅是连接不同系统和服务的桥梁,更是推动企业数字化转型和业务创新的关键动力。本文将深入探讨API接口在企业业务中的作用,从数据共享、系统集成、业务拓展、提高效率和安全性等五个方面进行分析。(高......
  • 中电金信:产教联合共育人才 AFAC2024金融智能创新大赛启动
    当前,人工智能技术正在蓬勃发展,引领着各行各业迈向智能化的新纪元,特别是在金融科技领域,伴随人工智能技术的不断迭代与突破,金融服务的边界也在不断拓展,传统的金融业态正经历着深刻的变革与重塑。 与此同时,随着金融科技持续创新与数字化转型深入推进,我国对于金融科技人才的需求日......
  • 尚硅谷2024最新Java入门视频教程(上部)java零基础入门教程(1)
    快捷键硬件和软件的概念字节的概念dos命令jvm和跨平台jdk和jre jdk下载1.官网www.oracle.com配置环境变量java第一个程序的开发这里我发现虽然配置了系统环境变量,但是并不能在任何地方运行,我自己的理解是可能系统区分不了到底要运行......
  • 华夏泰科:2024年江苏首批省星级上云企业申报指南
    为贯彻落实《江苏省制造业智能化改造和数字化转型三年行动计划(2022—2024年)》(苏政办发〔2021〕109号),加快推进企业“上云上平台”,围绕“1650”产业体系建设,助力制造业“智改数转网联”,支撑数实融合强省建设,现组织开展2024年度首批省星级上云企业创建工作。华夏泰科为您带来......
  • 用 Python 撸一个 Web 服务器-第9章:项目总结
    项目总结本教程带大家一起实现了一个TodoList程序,包含基础的增删改查功能,和用户登录认证。这也是Web开发中最常见的需求。我画了一张思维导图,帮助你从宏观的角度来概览TodoList程序,加深你对Web开发的理解。TodoList项目整体思路参考MVC设计模式。有意设计utils......