Bootstrap 5 保姆级教程(十二):弹出框 消息弹窗

一、弹出框

1.1 创建弹出框

通过向元素添加 data-bs-toggle="popover" 来来创建弹出框。

title 属性的内容为弹出框的标题,data-bs-content 属性显示了弹出框的文本内容:

注意: 弹出框要写在 JavaScript 的初始化代码里。

以下实例可以在文档的任何地方使用弹出框:

<div class="container mt-3"><h3>弹出框实例</h3><button type="button" class="btn btn-primary" data-bs-toggle="popover" title="弹出框标题" data-bs-content="弹出框内容">多次点我</button>
</div><script>
var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {return new bootstrap.Popover(popoverTriggerEl)
})
</script>

1.2 指定弹出框的位置

默认情况下弹出框显示在元素右侧。

可以使用 data-bs-placement 属性来设定弹出框显示的方向: top, bottom, left 或 right:

<div class="container mt-3"><h3>指定弹出框的位置</h3><a href="#" title="标题" data-bs-toggle="popover" data-bs-placement="top" data-bs-content="我是内容部分">点我</a><a href="#" title="标题" data-bs-toggle="popover" data-bs-placement="bottom" data-bs-content="我是内容部分">点我</a><a href="#" title="标题" data-bs-toggle="popover" data-bs-placement="left" data-bs-content="我是内容部分">点我</a><a href="#" title="标题" data-bs-toggle="popover" data-bs-placement="right" data-bs-content="我是内容部分">点我</a>
</div>

1.3 关闭弹出框

默认情况下,弹出框在再次点击指定元素后就会关闭,你可以使用 data-bs-trigger="focus" 属性来设置在鼠标点击元素外部区域来关闭弹出框:

提示:如果你想实现在鼠标移动到元素上显示,移除后消失的效果,可以使用 data-bs-trigger 属性,并设置值为 "hover":

<div class="container mt-3"><h3>弹出框实例</h3><a href="#" title="标题" data-bs-toggle="popover" data-bs-trigger="hover" data-bs-content="一些内容">鼠标移动到我这</a>
</div>

二、消息弹窗

2.1 创建弹窗

要创建弹窗可以使用 .toast 类,并在该类里添加 .toast-header 和 .toast-body 类来表示标题和内容。

注意:弹窗默认是关闭的,可以使用 .show 来设置显示,关闭弹窗可以在 <button>元素上添加 data-bs-dismiss="toast":

<div class="container mt-3"><h3>弹窗实例</h3><p>弹窗通常用于向用户显示短期消息,比如成功消息、错误消息、警告或其他通知。。</p><p>在这个页面的实例中我们使用 .show 来设置显示弹窗,可以点击关闭(X)图标来关闭弹窗。</p><div class="toast show"><div class="toast-header"><strong class="me-auto">弹窗标题</strong><button type="button" class="btn-close" data-bs-dismiss="toast"></button></div><div class="toast-body"><p>这是一个Bootstrap 5弹窗示例。</p></div></div>
</div>

要通过点击按钮显示弹窗,您需要使用 JavaScript 对其进行初始化:通过 ID 获取指定元素的点击事件并调用 toast() 方法。

当点击按钮时,以下代码将显示页面中的所有 toast 类:

<div class="container mt-3"><h3>弹窗实例</h3><p>在这个实例中我们通过点击按钮来显示弹窗。</p><button type="button" class="btn btn-primary" id="toastbtn">显示弹窗</button><div class="toast"><div class="toast-header"><strong class="me-auto">弹窗标题</strong><button type="button" class="btn-close" data-bs-dismiss="toast"></button></div><div class="toast-body"><p>这是一个Bootstrap 5弹窗示例。</p></div></div>
</div><script>
document.getElementById("toastbtn").onclick = function() {var toastElList = [].slice.call(document.querySelectorAll('.toast'))var toastList = toastElList.map(function(toastEl) {return new bootstrap.Toast(toastEl)})toastList.forEach(toast => toast.show()) 
}
</script>

将弹窗显示在右下角:

<div class="container mt-5"><button class="btn btn-primary" onclick="showToast()">显示弹窗</button></div><div class="position-fixed bottom-0 end-0 p-3"><div id="toast" class="toast" role="alert" aria-live="assertive" aria-atomic="true"><div class="toast-header"><strong class="me-auto">弹窗标题</strong><button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button></div><div class="toast-body">这是一个Bootstrap 5弹窗示例。</div></div></div><script>function showToast() {var toast = new bootstrap.Toast(document.getElementById('toast'));toast.show();}</script>

2.2 设置多个消息弹窗:

<body class="p-3 m-0 border-0 bd-example bd-example-toasts p-0"><!--显示多个弹窗 --><div aria-live="polite" aria-atomic="true" class="position-relative"><!-- Position it: --><!-- - `.toast-container` 设置弹窗直接的空隙 --><!-- - `top-0` & `end-0` 设置弹窗显示位置--><!-- - `.p-3` 设置外边距  --><div class="toast-container top-0 end-0 p-3"><!-- 这里设置多个弹窗代码 --><div class="toast fade show" role="alert" aria-live="assertive" aria-atomic="true"><div class="toast-header"><svg class="bd-placeholder-img rounded me-2" width="20" height="20" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" preserveAspectRatio="xMidYMid slice" focusable="false"><rect width="100%" height="100%" fill="#007aff"></rect></svg><strong class="me-auto">弹窗实例</strong><small class="text-muted">刚刚</small><button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button></div><div class="toast-body">这是第二个消息</div></div><div class="toast fade show" role="alert" aria-live="assertive" aria-atomic="true"><div class="toast-header"><svg class="bd-placeholder-img rounded me-2" width="20" height="20" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" preserveAspectRatio="xMidYMid slice" focusable="false"><rect width="100%" height="100%" fill="#007aff"></rect></svg><strong class="me-auto">弹窗实例</strong><small class="text-muted">2 秒前</small><button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button></div><div class="toast-body">这是第一个消息</div></div></div></div><!-- 显示多个弹窗 结束 -->
</body>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/637006.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NodeRed节点编辑用于边缘计算和规则引擎,能做带UI界面和业务逻辑的上位机或前端应用吗?

先说结论&#xff0c;可以&#xff0c;但是需要有页面嵌套继承类似的技术&#xff0c;实现页面模块化封装&#xff0c;否则难以实现复杂应用。 相信目光敏锐的人都在关注节点编辑在自身行业的应用&#xff01; NodeRed在边缘计算做数据协议解析、以及物联网平台中作为规则链引…

制作一个RISC-V的操作系统十二-定时器中断

文章目录 CLINT定时器中断mtimemtimecmp机制总体框架流程时间节拍系统时钟代码 CLINT 产生软件中断和定时器中断 定时器中断 mtime 类似计数器&#xff0c;按照硬件对应的固定频率递增 上电后会自动复位为0&#xff0c;有硬件自动完成 mtimecmp 需要自己设置&#xff0…

服务器数据恢复—RAID5故障导致SAP+oracle数据丢失的数据恢复案例

服务器存储数据恢复环境&#xff1a; 某品牌服务器存储中有一组由6块SAS硬盘组建的RAID5阵列&#xff0c;其中有1块硬盘作为热备盘使用。上层划分若干lun&#xff0c;存放Oracle数据库数据。 服务器存储故障&分析&#xff1a; 该RAID5阵列中一块硬盘出现故障离线&#xff0…

2024化工制造企业数字化白皮书

来源&#xff1a;蓝凌研究院 中国石油和化学工业联合会发布2023年中国石油和化工行业经济运行情况。数据显示&#xff0c;2023年&#xff0c;我国石化行业实现营业收入15.95万亿元&#xff0c; 同比下降1.1%&#xff0c;利润总额8733.6亿元&#xff0c;行业经济运行总体呈现低…

Jolt Json转换工具的基础教程

Jolt Json转换工具 jolt是一个轻量级的json文件转换库&#xff0c;可以把输入的json按照你编写脚本模板输出成你想要的json文本&#xff0c;能实现同样功能的有我们常用的velocity模板引擎&#xff0c;但jolt跟轻量且更专注于json&#xff0c;且在实现一些简单的格式转换中&am…

springboot no mapping for.....解决办法

这个问题是由于没有加入对应的GET,POST注解&#xff0c;导致映射失败&#xff0c;加入对应注解就ok了

【C++程序员的自我修炼】初识模板

云收天彩色 木叶落秋声 目录 函数模板 函数模板的实现 函数模板的实例化 模板参数的匹配原则 参数模板推不出来的情况 类模板 类模板的定义格式 类模板的实例化 契子 ✨ 我们在学 C语言 的时候应该都写过交换两个数的函数 swap 吧 当时我们只是写了 int 类型&#xff0c;那…

【JAVA】实现只有一个窗口弹出的底层逻辑——单身模式

目录 背景说明 代码实现 手写笔记 背景说明 有的时候&#xff0c;当你点击一个选项时会弹出来多个窗口&#xff0c;而有的时候只会弹出一个。 实际上&#xff0c;弹出多个窗口就是创建了多个相同的对象&#xff0c;而只弹出一个就是我们今天即将分享的单身模式——一个类只产生…

5.Eureka原理分析

消费者如何获取服务提供者具体信息&#xff1f; 1.服务提供者启动时向Eureka注册自己的信息。 2.Eureka保存这些信息。 3.消费者根据服务名称向Eureka拉取提供者信息。 如果有多个服务的提供者&#xff0c;消费者该如何选择&#xff1f; 1.服务消费者利用负载均衡算法&…

ardunio中自定义的库文件

1、Arduino的扩展库都是放在 libraries目录下的。完整路径为&#xff1a;C:\Users\41861\AppData\Local\Arduino15\libraries 所以我们需要在这个目录下创建一个文件夹&#xff0c;比如上面的例子是esp32上led灯控制程序&#xff0c;于是我创建了 m_led文件夹&#xff08;前面加…

web前端(简洁版)

0. 开发环境 && 安装插件 这里我使用的是vscode开发环境 Auto Rename Tag是语法自动补齐view-in-browser是快速在浏览器中打开live server实时网页刷新 1. HTML 文件基本结构 <html><head><title>第一个页面</title></head><body&g…

存储过程的查询

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 在实际使用中&#xff0c;经常会需要查询数据库中已有的存储过程或者某一个存储过程的内容&#xff0c; 下面就介绍-下如何查询存储过程。 这需要使用到数据字典 user_sou…