Offcanvas เป็นองค์ประกอบของ Bootstrap 5 ที่ช่วยให้เราสามารถสร้างเมนูหรือตัวเลือกที่ซ่อนอยู่ด้านข้าง และสามารถเลื่อนเข้ามาในหน้าเมื่อมีการเรียกใช้งานได้ โดย Offcanvas เหมาะสำหรับการสร้างเมนูข้างหรือ sidebar บนหน้าจอเล็ก ๆ เช่น โทรศัพท์มือถือ ทำให้สามารถเพิ่มพื้นที่ในการแสดงเนื้อหาได้เต็มที่ในหน้าจอ
โครงสร้างพื้นฐานของ Offcanvas ใน Bootstrap 5
โครงสร้างพื้นฐานของ Offcanvas จะประกอบไปด้วย:
- ปุ่ม สำหรับเปิด Offcanvas
- องค์ประกอบ Offcanvas ที่เป็นแผงหรือเมนูที่เลื่อนออกมา
ตัวอย่างโค้ดพื้นฐานของ Offcanvas มีดังนี้
<!-- ปุ่มเปิด Offcanvas -->
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" aria-controls="offcanvasExample">
เปิดเมนู
</button>
<!-- Offcanvas -->
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasExample" aria-labelledby="offcanvasExampleLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasExampleLabel">เมนู</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p>เนื้อหาภายใน Offcanvas</p>
<ul class="list-unstyled">
<li><a href="#">ลิงก์ 1</a></li>
<li><a href="#">ลิงก์ 2</a></li>
<li><a href="#">ลิงก์ 3</a></li>
</ul>
</div>
</div>ในตัวอย่างนี้ เมื่อคลิกที่ปุ่ม “เปิดเมนู” จะมีเมนูเลื่อนเข้ามาจากทางด้านซ้าย โดยคุณสามารถเพิ่มเนื้อหาหรือเมนูที่คุณต้องการในส่วนของ <div class="offcanvas-body">


ลักษณะการประยุกต์ใช้งาน Offcanvas
Offcanvas ใน Bootstrap 5 สามารถประยุกต์ใช้งานได้หลายลักษณะ ดังนี้
การกำหนดทิศทางการเปิด Offcanvas
Offcanvas สามารถเลื่อนเข้ามาจากหลายทิศทาง ได้แก่ ซ้าย ขวา บน และล่าง โดยสามารถกำหนดคลาสที่ใช้ได้ดังนี้
offcanvas-startสำหรับเปิดจากด้านซ้าย (ค่าเริ่มต้น)offcanvas-endสำหรับเปิดจากด้านขวาoffcanvas-topสำหรับเปิดจากด้านบนoffcanvas-bottomสำหรับเปิดจากด้านล่าง
ตัวอย่างการใช้ Offcanvas เปิดจากด้านขวา
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" aria-labelledby="offcanvasRightLabel">
<!-- เนื้อหา -->
</div>การกำหนดขนาดของ Offcanvas
Offcanvas สามารถกำหนดขนาดเพื่อให้เหมาะสมกับการใช้งานต่าง ๆ โดยใช้คลาสเช่น
offcanvas-smสำหรับขนาดเล็กoffcanvas-mdสำหรับขนาดกลางoffcanvas-lgสำหรับขนาดใหญ่
ตัวอย่างการใช้ Offcanvas ขนาดใหญ่
<div class="offcanvas offcanvas-start offcanvas-lg" tabindex="-1" id="offcanvasLarge" aria-labelledby="offcanvasLargeLabel">
<!-- เนื้อหา -->
</div>การใช้ Offcanvas เพื่อแสดงข้อมูลหรือฟอร์ม
นอกจากการใช้เพื่อสร้างเมนูแล้ว Offcanvas ยังสามารถใช้แสดงข้อมูลหรือฟอร์มที่ต้องการให้ผู้ใช้งานกรอกได้ โดยประยุกต์ใช้งานร่วมกับฟอร์มต่าง ๆ
ตัวอย่างการใช้ Offcanvas สำหรับแสดงฟอร์ม
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasForm" aria-labelledby="offcanvasFormLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasFormLabel">แบบฟอร์มติดต่อ</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<form>
<div class="mb-3">
<label for="email" class="form-label">อีเมล</label>
<input type="email" class="form-control" id="email" placeholder="ชื่อ@อีเมล.com">
</div>
<div class="mb-3">
<label for="message" class="form-label">ข้อความ</label>
<textarea class="form-control" id="message" rows="3" placeholder="ข้อความของคุณ"></textarea>
</div>
<button type="submit" class="btn btn-primary">ส่งข้อความ</button>
</form>
</div>
</div>การใช้ Offcanvas แสดงผลในโมบายแอพหรือเว็บแอพ
Offcanvas สามารถนำไปประยุกต์ใช้กับเว็บแอพ หรือการสร้างโมบายแอพแบบ Progressive Web App (PWA) เพื่อทำให้ผู้ใช้งานสะดวกในการเข้าถึงเมนูหรือการตั้งค่าต่าง ๆ ที่ซ่อนอยู่
สรุป
Offcanvas ใน Bootstrap 5 เป็นเครื่องมือที่มีความยืดหยุ่นและประหยัดพื้นที่บนหน้าจอ ทำให้ผู้ใช้งานสามารถเข้าถึงเมนู ข้อมูล หรือฟอร์มได้สะดวก และยังสามารถปรับแต่งให้เหมาะสมกับการใช้งานในหลาย ๆ รูปแบบ ทั้งการเปิดจากหลายทิศทาง ขนาดที่หลากหลาย รวมถึงการใช้ร่วมกับฟอร์มหรือข้อมูลต่าง ๆ เพื่อประโยชน์ที่ครอบคลุม
