Bootstrap 5 การใช้งาน Toast

ใน Bootstrap 5 มีองค์ประกอบหนึ่งที่น่าสนใจและใช้งานง่ายมาก นั่นคือ Toast ซึ่งเป็นการแสดงผลการแจ้งเตือนแบบเล็ก ๆ ที่ปรากฏบนหน้าจอระหว่างที่ผู้ใช้ทำงาน โดย Toast เป็นองค์ประกอบที่ออกแบบมาให้ไม่รบกวนการทำงานของผู้ใช้มากนัก และสามารถนำไปประยุกต์ใช้งานได้ในหลากหลายสถานการณ์ เช่น แจ้งเตือนความสำเร็จ การแจ้งเตือนข้อผิดพลาด หรือการแจ้งเตือนข่าวสารอื่น ๆ โดยมีลักษณะเฉพาะที่สามารถปรับแต่งได้ตามความต้องการ

การใช้งาน Toast ใน Bootstrap 5

โครงสร้างพื้นฐานของ Toast

Toast ใน Bootstrap 5 ใช้โครงสร้างพื้นฐานที่เรียบง่าย โดยมี HTML สำหรับการสร้างและ CSS พร้อมกับ JavaScript ที่ใช้ในการควบคุมการทำงานของ Toast

HTML
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
  <div class="toast-header">
    <img src="..." class="rounded me-2" alt="...">
    <strong class="me-auto">Bootstrap</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">
    Hello, world! This is a toast message.
  </div>
</div>

การเปิดใช้งาน Toast ด้วย JavaScript

เพื่อให้ Toast สามารถทำงานได้ จำเป็นต้องใช้ JavaScript เพื่อสั่งให้ Toast ปรากฏขึ้น ตัวอย่างการใช้งานมีดังนี้

JavaScript
var toastElList = [].slice.call(document.querySelectorAll('.toast'))
var toastList = toastElList.map(function (toastEl) {
  return new bootstrap.Toast(toastEl)
})

toastList.forEach(toast => toast.show());

การใช้งาน Toast แบบพื้นฐาน

Toast แบบพื้นฐานจะประกอบไปด้วยหัวเรื่อง (Header) และเนื้อหา (Body) โดยที่เราสามารถกำหนดเนื้อหาได้ตามความต้องการ

HTML
<div class="toast-container position-fixed bottom-0 end-0 p-3">
  <div id="basicToast" class="toast" role="alert" aria-live="assertive" aria-atomic="true">
    <div class="toast-header">
      <strong class="me-auto">Bootstrap</strong>
      <small>Just now</small>
      <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
    </div>
    <div class="toast-body">
      This is a basic toast notification!
    </div>
  </div>
</div>

การแสดงผล Toast โดยอัตโนมัติเมื่อโหลดหน้าเว็บ

เราสามารถตั้งค่าให้ Toast แสดงผลโดยอัตโนมัติเมื่อโหลดหน้าเว็บ โดยใช้ JavaScript เพื่อควบคุมการทำงาน

JavaScript
document.addEventListener('DOMContentLoaded', function () {
  var toastEl = document.getElementById('basicToast');
  var toast = new bootstrap.Toast(toastEl);
  toast.show();
});

การปรับแต่ง Toast ด้วยลักษณะต่าง ๆ

ตำแหน่งการแสดงผล เราสามารถปรับตำแหน่งการแสดงผลของ Toast ได้ เช่น แสดงที่ด้านบนของหน้าจอ ด้านล่าง หรือด้านข้าง โดยใช้คลาสของ Bootstrap ที่จัดการตำแหน่ง เช่น top-0, bottom-0, start-0, และ end-0

HTML
<div class="toast-container position-fixed top-0 start-0 p-3">
  <div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
    <div class="toast-header">
      <strong class="me-auto">Top Left</strong>
      <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
    </div>
    <div class="toast-body">
      This toast is shown at the top-left!
    </div>
  </div>
</div>

กำหนดเวลาในการแสดงผล การตั้งค่าความยาวเวลาที่ Toast จะถูกแสดงผล สามารถกำหนดได้โดยใช้คุณสมบัติ delay ใน JavaScript

JavaScript
var toastEl = document.getElementById('basicToast');
var toast = new bootstrap.Toast(toastEl, {
  delay: 5000 // 5 วินาที
});
toast.show();

การใช้ Toast แบบโต้ตอบ (Interactive Toast) เราสามารถทำให้ Toast โต้ตอบกับผู้ใช้ได้ เช่น การใช้ปุ่มเพื่อทำให้ Toast หายไป

HTML
<div class="toast-container position-fixed bottom-0 end-0 p-3">
  <div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
    <div class="toast-header">
      <strong class="me-auto">Interactive Toast</strong>
      <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
    </div>
    <div class="toast-body">
      This is an interactive toast notification!
      <button class="btn btn-primary btn-sm mt-2" onclick="performAction()">Click me</button>
    </div>
  </div>
</div>

<script>
  function performAction() {
    alert('Action performed!');
  }
</script>

Toast หลายรายการ (Multiple Toasts) หากต้องการแสดง Toast หลาย ๆ รายการในเวลาเดียวกัน สามารถเพิ่ม Toast ลงไปใน toast-container เดียวกันได้

HTML
<div class="toast-container position-fixed bottom-0 end-0 p-3">
  <div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
    <div class="toast-header">
      <strong class="me-auto">Toast 1</strong>
      <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
    </div>
    <div class="toast-body">
      This is the first toast.
    </div>
  </div>

  <div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
    <div class="toast-header">
      <strong class="me-auto">Toast 2</strong>
      <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
    </div>
    <div class="toast-body">
      This is the second toast.
    </div>
  </div>
</div>

สรุป

Toast ใน Bootstrap 5 เป็นเครื่องมือที่สะดวกและยืดหยุ่นในการแจ้งเตือนผู้ใช้ โดยมีฟังก์ชันการปรับแต่งที่หลากหลาย ทำให้เราสามารถประยุกต์ใช้งานในโปรเจกต์ต่าง ๆ ได้อย่างง่ายดาย ไม่ว่าจะเป็นการแจ้งเตือนข้อมูลสำคัญ หรือการโต้ตอบแบบเรียลไทม์ Toast ก็สามารถตอบโจทย์การใช้งานได้เป็นอย่างดี

แชร์เรื่องนี้