精品久久久久久亚洲精品_成人午夜网站_www日本高清_亚洲精品久久久久午夜福

第28節 Bootstrap5吐司消息Toasts組件用法

On this page

28.1 吐司消息(Toasts)示例

吐司(Toasts)是一種輕量級通知,旨在模仿移動和桌面操作系統已經普及的推送通知。它們是用flexbox構建的,所以它們很容易對齊和定位。

和彈出提示一樣,吐司消息也需要自己初始化,不知為什么官網的初始化方法無效,我在國外網站找到一個可行的方法。

<!doctype html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="keywords" content="">
    <meta name="description" content="">
    <link href="../bootstrap5/bootstrap.min.css" rel="stylesheet">
    <title>Popovers</title>
  </head>
  <body>
    <div class="container">
        <br><br><br><br>
        <button type="button" class="btn btn-primary" id="liveToastBtn">顯示吐司消息</button>
        <div class="position-fixed bottom-0 end-0 p-3" style="z-index: 5">
          <div id="liveToast" class="toast hide" data-bs-animation="false" role="alert" aria-live="assertive" aria-atomic="true">
            <div class="toast-header">
            <strong class="me-auto">吐司消息提示</strong>
            <small>11 mins ago</small>
            <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
            </div>
            <div class="toast-body">
            你有一條短消息!
            </div>
          </div>
        </div>

      </div>
     <script src="../bootstrap5/bootstrap.bundle.min.js" ></script>
     <script>
      document.querySelector("#liveToastBtn").onclick = function() {
        new bootstrap.Toast(document.querySelector('.toast')).show();
      }
   </script>
  </body>
</html>
復制代碼

3.1.jpg

28.2 設置選項

選項可以透過數據屬性或是JavaScript傳遞。對于數據屬性,將選項名稱附加到data-bs-,如:data-bs-animation=""。

  • data-bs-animation="true" 在吐司應用CSS fade轉換效果
  • data-bs-autohide="true" 自動將吐司隱藏
  • data-bs-delay="5000" ,延遲隱藏吐司5s(默認單位毫秒)

以上值為默認值,如果你對磨人的效果滿意,根本不需要寫那個,27.3.1例子中,我設置了data-bs-autohide="false"設置不自動將吐司隱藏,這樣好方便截圖,否則鼠標只要在任何地方一點,消息框就消失了。

28.3 半透明的

吐司也可以是半透明的,因此能混合在它們可能出現的任何東西上。在支持CSS屬性backdrop-filter的瀏覽器,還會嘗試對吐司下方的元素進行模糊效果。

<!doctype html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="keywords" content="">
    <meta name="description" content="">
    <link href="../bootstrap5/bootstrap.min.css" rel="stylesheet">
    <title>吐司消息</title>
  </head>
  <body>
    <div class="container">
        <br><br><br><br>
        <button type="button" class="btn btn-primary" id="liveToastBtn">顯示吐司消息</button>
        <div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
          <div class="toast-header">
          <strong class="me-auto">半透明吐司</strong>
          <small class="text-muted">11 mins ago</small>
          <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
          </div>
          <div class="toast-body">
            你有一條短消息!
          </div>
          </div>

      </div>
     <script src="../bootstrap5/bootstrap.bundle.min.js" ></script>
     <script>
      document.querySelector("#liveToastBtn").onclick = function() {
        new bootstrap.Toast(document.querySelector('.toast')).show();
      }
   </script>
  </body>
</html>
復制代碼

2.jpg

28.4 堆疊

可以透過將吐司包裝于toast-container容器來推疊它們,這將會在垂直方向上增加一些間距。

<!doctype html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="keywords" content="">
    <meta name="description" content="">
    <link href="../bootstrap5/bootstrap.min.css" rel="stylesheet">
    <title>吐司消息</title>
  </head>
  <body>
    <div class="container">
        <br><br><br><br>
        <button type="button" class="btn btn-primary" id="liveToastBtn1">顯示吐司消息1</button>
        <button type="button" class="btn btn-primary" id="liveToastBtn2">顯示吐司消息2</button>
        <div class="toast-container">
          <div class="toast" id="toast1" role="alert" aria-live="assertive" aria-atomic="true">
          <div class="toast-header">
          <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"  id="toast2" role="alert" aria-live="assertive" aria-atomic="true">
          <div class="toast-header">
          <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>
     <script src="../bootstrap5/bootstrap.bundle.min.js" ></script>
     <script>
       document.querySelector("#liveToastBtn1").onclick = function() {
        new bootstrap.Toast(document.querySelector('#toast1')).show();
      }
      document.querySelector("#liveToastBtn2").onclick = function() {
        new bootstrap.Toast(document.querySelector('#toast2')).show();
      }
   </script>
  </body>
</html>
復制代碼

4.jpg

28.5 自定義內容

透過移除子元件、調整通用類或是增加標記以自定義吐司。

<!doctype html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="keywords" content="">
    <meta name="description" content="">
    <link href="../bootstrap5/bootstrap.min.css" rel="stylesheet">
    <title>吐司消息</title>
  </head>
  <body>
    <div class="container">
        <br><br><br><br>
        <button type="button" class="btn btn-primary" id="liveToastBtn">顯示吐司消息</button>
        <div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
            <div class="toast-body">
            邀請你穿越到三國!
            <div class="mt-2 pt-2 border-top">
            <button type="button" class="btn btn-primary btn-sm">接受邀請</button>
            <button type="button" class="btn btn-secondary btn-sm" data-bs-dismiss="toast">關閉</button>
            </div>
            </div>
         </div>

      </div>
     <script src="../bootstrap5/bootstrap.bundle.min.js" ></script>
     <script>
      document.querySelector("#liveToastBtn").onclick = function() {
        new bootstrap.Toast(document.querySelector('.toast')).show();
      }
   </script>
  </body>
</html>
復制代碼

5.jpg

28.6 配色方案

基于以上的示例,您也可以透過我們的顏色通用類別建立不同的吐司配色方案。以下我們將bg-danger與text-white添加到toast,再把text-white添加到關閉按鈕上。為了讓邊緣清晰顯示,透過border-0移除了預設的邊框。

<!doctype html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="keywords" content="">
    <meta name="description" content="">
    <link href="../bootstrap5/bootstrap.min.css" rel="stylesheet">
    <title>吐司消息</title>
  </head>
  <body>
    <div class="container">
        <br><br><br><br>
        <button type="button" class="btn btn-primary" id="liveToastBtn">顯示吐司消息</button>

        <div class="toast align-items-center text-white bg-danger border-0" role="alert" aria-live="assertive" aria-atomic="true">
            <div class="d-flex">
            <div class="toast-body">
            這里是紅色背景的
            </div>
            <button type="button" class="btn-close btn-close-white me-2 m-auto" data-bs-dismiss="toast" aria-label="Close"></button>
            </div>
        </div>

      </div>
     <script src="../bootstrap5/bootstrap.bundle.min.js" ></script>
     <script>
      document.querySelector("#liveToastBtn").onclick = function() {
        new bootstrap.Toast(document.querySelector('.toast')).show();
      }
   </script>
  </body>
</html>
復制代碼

6.jpg

28.7 設置顯示位置

默認吐司消息顯示在瀏覽器右下角,根據需求,使用自定義的CSS指定吐司位置。右上角通常用于通知,頂部的中間也是如此。如果您一次只要展示一個吐司,請將定位樣式放在toast上。

<form>
<div class="mb-3">
<label for="selectToastPlacement">Toast placement</label>
<select class="form-select mt-2" id="selectToastPlacement">
<option value="" selected>Select a position...</option>
<option value="top-0 start-0">Top left</option>
<option value="top-0 start-50 translate-middle-x">Top center</option>
<option value="top-0 end-0">Top right</option>
<option value="top-50 start-0 translate-middle-y">Middle left</option>
<option value="top-50 start-50 translate-middle">Middle center</option>
<option value="top-50 end-0 translate-middle-y">Middle right</option>
<option value="bottom-0 start-0">Bottom left</option>
<option value="bottom-0 start-50 translate-middle-x">Bottom center</option>
<option value="bottom-0 end-0">Bottom right</option>
</select>
</div>
</form>
<div aria-live="polite" aria-atomic="true" class="bg-dark position-relative bd-example-toasts">
<div class="toast-container position-absolute p-3" id="toastPlacement">
<div class="toast">
<div class="toast-header">
  <img src="..." class="rounded me-2" alt="...">
  <strong class="me-auto">Bootstrap</strong>
  <small>11 mins ago</small>
</div>
<div class="toast-body">
  Hello, world! This is a toast message.
</div>
</div>
</div>
</div>
復制代碼

上面是官方例子,Bootstrap5 Toasts我也沒找到其中驅動的js代碼。不過可以給大家參考一下,有興趣的可以去研究一下,在這里我根據上面的代碼,修改了個顯示在左上角的。

<!doctype html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="keywords" content="">
    <meta name="description" content="">
    <link href="../bootstrap5/bootstrap.min.css" rel="stylesheet">
    <title>吐司消息</title>
  </head>
  <body>
    <div class="container">
        <br><br><br><br>
        <button type="button" class="btn btn-primary" id="liveToastBtn">顯示吐司消息</button>
        <div class="position-fixed top-0 start-0 p-3" style="z-index: 5">
          <div id="liveToast" class="toast hide" data-bs-animation="false" role="alert" aria-live="assertive" aria-atomic="true">
            <div class="toast-header">
            <strong class="me-auto">吐司消息提示</strong>
            <small>11 mins ago</small>
            <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
            </div>
            <div class="toast-body">
            你有一條短消息!
            </div>
          </div>
        </div>

      </div>
     <script src="../bootstrap5/bootstrap.bundle.min.js" ></script>
     <script>
      document.querySelector("#liveToastBtn").onclick = function() {
        new bootstrap.Toast(document.querySelector('.toast')).show();
      }
   </script>
  </body>
</html>
復制代碼

7.jpg

今天的課程就到這里,請關注我,及時學習 俺老劉原創的《Bootstrap5零基礎到精通》第29節 Bootstrap5 讀取圖標Spinners組件用法。

如果這篇文章對你有幫助,記得隨手點贊哦!

返回頂部
精品久久久久久亚洲精品_成人午夜网站_www日本高清_亚洲精品久久久久午夜福

      9000px;">

          欧美一区二区三区四区视频| 亚洲欧美一区二区三区极速播放| 日本一区二区三区四区在线视频| 色综合久久六月婷婷中文字幕| 欧美va天堂va视频va在线| 亚洲欧美视频在线观看| 国产精品动漫网站| 国产精品丝袜91| 日韩欧美三级在线| 日韩一区二区不卡| www日韩大片| 亚洲蜜臀av乱码久久精品| 1024亚洲合集| 日韩欧美国产精品| 欧美一区二区三区啪啪| 日韩欧美国产综合| 精品国产乱码久久久久久久 | 欧美一区二区三区性视频| 欧美久久久影院| 91精品国产综合久久国产大片| 51精品秘密在线观看| 日韩三级高清在线| 久久精品一区四区| 中文字幕亚洲在| 亚洲一区二区视频| 免费观看在线综合| 丁香另类激情小说| 色吊一区二区三区| 日韩一级高清毛片| 国产精品美女久久久久久久网站| 亚洲欧美一区二区三区孕妇| 人妖欧美一区二区| 国产99久久精品| 欧美片网站yy| 久久久不卡网国产精品二区| 亚洲免费av高清| 男女男精品网站| 91伊人久久大香线蕉| 色呦呦一区二区三区| 欧美三级中文字幕在线观看| 精品盗摄一区二区三区| 亚洲美女少妇撒尿| 国产一区二区免费视频| 欧美性高清videossexo| 久久久久久毛片| 亚洲一卡二卡三卡四卡五卡| 国产成人免费xxxxxxxx| 欧美人体做爰大胆视频| 亚洲欧洲成人自拍| 久久国产麻豆精品| 欧美日韩极品在线观看一区| 18成人在线观看| 精品一区二区成人精品| 亚洲第一综合色| 91视频国产资源| 午夜欧美在线一二页| 日韩精品一区二区三区蜜臀| 国产成人免费av在线| 亚洲天堂中文字幕| 精品视频1区2区3区| 日韩电影一二三区| 国产三级欧美三级日产三级99| 99视频超级精品| 日本三级亚洲精品| 国产精品欧美久久久久一区二区| 91免费精品国自产拍在线不卡| 亚洲国产欧美一区二区三区丁香婷| 91精品欧美综合在线观看最新| 国产一区二区三区蝌蚪| 一区二区三区中文在线| 欧美不卡激情三级在线观看| 丁香五精品蜜臀久久久久99网站| 一区二区三区在线播放| 精品国产乱码久久久久久老虎 | 亚洲激情自拍偷拍| 日韩一区二区不卡| 成人a免费在线看| 日韩电影免费在线| 国产精品免费视频一区| 在线不卡欧美精品一区二区三区| 国产在线观看一区二区| 一区二区高清在线| 久久精品一区八戒影视| 欧美日韩另类一区| 99视频精品免费视频| 国内精品久久久久影院一蜜桃| 亚洲午夜影视影院在线观看| 国产精品人人做人人爽人人添| 欧美一区二区三区四区久久| 91久久国产综合久久| 成人国产一区二区三区精品| 美国一区二区三区在线播放| 亚洲精品一卡二卡| 久久久久久日产精品| 制服.丝袜.亚洲.另类.中文| 91网站最新网址| 国产aⅴ精品一区二区三区色成熟| 视频一区二区三区在线| 一区二区三区中文字幕| 亚洲电影一区二区三区| 91精品国产综合久久久久久久 | 亚洲国产另类av| 精品国偷自产国产一区| 国产精品影视在线观看| 亚洲精品日韩一| 欧美一区二区久久久| 亚洲电影你懂得| 亚洲福利视频一区二区| 一区二区日韩av| 亚洲视频 欧洲视频| 中文字幕在线不卡国产视频| 日本一区二区三区电影| 久久色中文字幕| 亚洲精品一区二区三区蜜桃下载| 91麻豆精品国产91久久久使用方法| 欧美日韩中文国产| 欧美日韩日日夜夜| 欧美嫩在线观看| 777色狠狠一区二区三区| 日韩一区二区电影| 精品国产99国产精品| 久久久美女毛片| 中文乱码免费一区二区| 国产精品日韩成人| 1024国产精品| 一区二区免费视频| 亚洲电影在线播放| 欧美一卡2卡三卡4卡5免费| 国产麻豆日韩欧美久久| 亚洲国产毛片aaaaa无费看 | 国产精品一区二区你懂的| 日韩精品一二区| 亚洲美女在线国产| 亚洲国产精品成人综合色在线婷婷| 欧美美女激情18p| 日本二三区不卡| 成人高清免费在线播放| 麻豆精品一区二区av白丝在线| 亚洲欧美另类小说| 国产精品系列在线| 久久免费午夜影院| 欧美精品一区二区三区四区| 日韩免费高清视频| 51精品久久久久久久蜜臀| 91久久久免费一区二区| 91女厕偷拍女厕偷拍高清| 国产91对白在线观看九色| 国产真实精品久久二三区| 久久国产免费看| 美女视频网站久久| 青青草精品视频| 七七婷婷婷婷精品国产| 青青草国产精品亚洲专区无| 亚洲va欧美va天堂v国产综合| 亚洲综合一区二区精品导航| 亚洲蜜臀av乱码久久精品| 亚洲免费观看高清完整版在线观看熊| 国产欧美日本一区视频| 日本一区二区免费在线| 欧美国产日韩a欧美在线观看| 亚洲国产高清不卡| 国产精品久久久久三级| 亚洲三级在线看| 亚洲一区二区四区蜜桃| 五月婷婷综合网| 日本成人在线不卡视频| 麻豆国产精品官网| 国产乱码精品一品二品| 91在线无精精品入口| 欧美三级中文字| 精品福利一区二区三区 | 在线看国产一区| 7777精品伊人久久久大香线蕉的| 日韩欧美一级在线播放| 26uuu欧美| 亚洲欧美日韩久久| 日本伊人色综合网| 成人性视频网站| 欧美色精品在线视频| 日韩免费视频一区| 欧美激情一区在线观看| 亚洲综合丁香婷婷六月香| 毛片一区二区三区| 国产成人精品aa毛片| 欧美性淫爽ww久久久久无| 欧美草草影院在线视频| 中文字幕在线观看一区二区| 日韩欧美激情一区| 五月天丁香久久| 色婷婷综合视频在线观看| 国产精品免费丝袜| 丰满白嫩尤物一区二区| 久久精品亚洲国产奇米99| 精品在线观看免费| 精品国产第一区二区三区观看体验| 视频精品一区二区| 欧美久久久久久久久| 日本午夜一本久久久综合| 69堂亚洲精品首页| 久久99精品国产91久久来源|