ใน Bootstrap 5 มีองค์ประกอบหนึ่งที่น่าสนใจและใช้งานง่ายมาก นั่นคือ Toast ซึ่งเป็นการแสดงผลการแจ้งเตือนแบบเล็ก ๆ ที่ปรากฏบนหน้าจอระหว่างที่ผู้ใช้ทำงาน โดย Toast เป็นองค์ประกอบที่ออกแบบมาให้ไม่รบกวนการทำงานของผู้ใช้มากนัก และสามารถนำไปประยุกต์ใช้งานได้ในหลากหลายสถานการณ์ เช่น แจ้งเตือนความสำเร็จ การแจ้งเตือนข้อผิดพลาด หรือการแจ้งเตือนข่าวสารอื่น ๆ โดยมีลักษณะเฉพาะที่สามารถปรับแต่งได้ตามความต้องการ
การใช้งาน Toast ใน Bootstrap 5
โครงสร้างพื้นฐานของ Toast
Toast ใน Bootstrap 5 ใช้โครงสร้างพื้นฐานที่เรียบง่าย โดยมี HTML สำหรับการสร้างและ CSS พร้อมกับ JavaScript ที่ใช้ในการควบคุมการทำงานของ Toast
<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 ปรากฏขึ้น ตัวอย่างการใช้งานมีดังนี้
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) โดยที่เราสามารถกำหนดเนื้อหาได้ตามความต้องการ
<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 เพื่อควบคุมการทำงาน
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
<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
var toastEl = document.getElementById('basicToast');
var toast = new bootstrap.Toast(toastEl, {
delay: 5000 // 5 วินาที
});
toast.show();การใช้ Toast แบบโต้ตอบ (Interactive Toast) เราสามารถทำให้ Toast โต้ตอบกับผู้ใช้ได้ เช่น การใช้ปุ่มเพื่อทำให้ Toast หายไป
<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 เดียวกันได้
<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 ก็สามารถตอบโจทย์การใช้งานได้เป็นอย่างดี
