ออฟแคนวาส
สร้างแถบด้านข้างที่ซ่อนอยู่ในโครงการของคุณสำหรับการนำทาง ตะกร้าสินค้า และอื่นๆ ด้วยคลาสไม่กี่คลาสและปลั๊กอิน JavaScript ของเรา
มันทำงานอย่างไร
Offcanvas เป็นส่วนประกอบของแถบด้านข้างที่สามารถสลับผ่าน JavaScript เพื่อให้ปรากฏจากขอบซ้าย ขวา บนหรือล่างของวิวพอร์ต ปุ่มหรือจุดยึดถูกใช้เป็นทริกเกอร์ที่แนบกับองค์ประกอบเฉพาะที่คุณสลับ และdata
แอตทริบิวต์จะใช้เพื่อเรียกใช้ JavaScript ของเรา
- Offcanvas ใช้โค้ด JavaScript เดียวกันกับ Modals ตามแนวคิดแล้วมันค่อนข้างคล้ายกัน แต่เป็นปลั๊กอินแยกต่างหาก
- ในทำนองเดียวกัน ตัวแปร Sass ต้นทาง บาง ตัวสำหรับรูปแบบและขนาดของ offcanvas นั้นสืบทอดมาจากตัวแปรของ modal
- เมื่อแสดง offcanvas จะมีฉากหลังเริ่มต้นที่สามารถคลิกเพื่อซ่อน offcanvas ได้
- คล้ายกับโมดอล สามารถแสดง offcanvas ได้ครั้งละหนึ่งภาพเท่านั้น
หัวขึ้น! เมื่อพิจารณาว่า CSS จัดการกับภาพเคลื่อนไหวอย่างไร คุณไม่สามารถใช้margin
หรือtranslate
บน.offcanvas
องค์ประกอบได้ ให้ใช้คลาสเป็นองค์ประกอบการห่ออิสระแทน
prefers-reduced-motion
คิวรีสื่อ ดู
ส่วนการเคลื่อนไหวที่ลดลงของเอกสารการช่วยสำหรับการเข้าถึงของเรา
ตัวอย่าง
ส่วนประกอบ Offcanvas
ด้านล่างนี้คือตัวอย่าง offcanvas ที่แสดงโดยค่าเริ่มต้น (ผ่าน.show
on .offcanvas
) Offcanvas รองรับส่วนหัวที่มีปุ่มปิดและตัวเลือกคลาสร่างกายสำหรับไฟล์ initial padding
. เราขอแนะนำให้คุณรวมส่วนหัวของ offcanvas ด้วยการดำเนินการยกเลิกเมื่อทำได้ หรือระบุการดำเนินการปิดอย่างชัดแจ้ง
ออฟแคนวาส
<div class="offcanvas offcanvas-start show" tabindex="-1" id="offcanvas" aria-labelledby="offcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasLabel">Offcanvas</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
Content for the offcanvas goes here. You can place just about any Bootstrap component or custom elements here.
</div>
</div>
สาธิตสด
ใช้ปุ่มด้านล่างเพื่อแสดงและซ่อนองค์ประกอบ offcanvas ผ่าน JavaScript ที่สลับ.show
คลาสบนองค์ประกอบที่มี.offcanvas
คลาส
.offcanvas
ซ่อนเนื้อหา (ค่าเริ่มต้น).offcanvas.show
แสดงเนื้อหา
คุณสามารถใช้ลิงก์ที่มีhref
แอตทริบิวต์หรือปุ่มที่มีdata-bs-target
แอตทริบิวต์ได้ ในทั้งสองกรณีdata-bs-toggle="offcanvas"
จำเป็นต้องมี
ออฟแคนวาส
<a class="btn btn-primary" data-bs-toggle="offcanvas" href="#offcanvasExample" role="button" aria-controls="offcanvasExample">
Link with href
</a>
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" aria-controls="offcanvasExample">
Button with data-bs-target
</button>
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasExample" aria-labelledby="offcanvasExampleLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasExampleLabel">Offcanvas</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<div>
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
</div>
<div class="dropdown mt-3">
<button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown">
Dropdown button
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</div>
</div>
</div>
เลื่อนร่างกาย
การเลื่อน<body>
องค์ประกอบจะถูกปิดใช้งานเมื่อมองเห็น offcanvas และฉากหลัง ใช้data-bs-scroll
แอตทริบิวต์เพื่อเปิดใช้<body>
งานการเลื่อน
Offcanvas ที่มีการเลื่อนร่างกาย
ลองเลื่อนส่วนที่เหลือของหน้าเพื่อดูการทำงานของตัวเลือกนี้
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasScrolling" aria-controls="offcanvasScrolling">Enable body scrolling</button>
<div class="offcanvas offcanvas-start" data-bs-scroll="true" data-bs-backdrop="false" tabindex="-1" id="offcanvasScrolling" aria-labelledby="offcanvasScrollingLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasScrollingLabel">Offcanvas with body scrolling</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p>Try scrolling the rest of the page to see this option in action.</p>
</div>
</div>
การเลื่อนตัวและฉากหลัง
คุณยังสามารถเปิดใช้<body>
งานการเลื่อนด้วยฉากหลังที่มองเห็นได้
ฉากหลังที่มีการเลื่อน
ลองเลื่อนส่วนที่เหลือของหน้าเพื่อดูการทำงานของตัวเลือกนี้
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasWithBothOptions" aria-controls="offcanvasWithBothOptions">Enable both scrolling & backdrop</button>
<div class="offcanvas offcanvas-start" data-bs-scroll="true" tabindex="-1" id="offcanvasWithBothOptions" aria-labelledby="offcanvasWithBothOptionsLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasWithBothOptionsLabel">Backdrop with scrolling</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p>Try scrolling the rest of the page to see this option in action.</p>
</div>
</div>
ฉากหลังแบบคงที่
เมื่อตั้งค่าฉากหลังเป็นภาพนิ่ง ภาพนอกผ้าใบจะไม่ปิดเมื่อคลิกภายนอก
ออฟแคนวาส
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#staticBackdrop" aria-controls="staticBackdrop">
Toggle static offcanvas
</button>
<div class="offcanvas offcanvas-start" data-bs-backdrop="static" tabindex="-1" id="staticBackdrop" aria-labelledby="staticBackdropLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="staticBackdropLabel">Offcanvas</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<div>
I will not close if you click outside of me.
</div>
</div>
</div>
ผ้าใบสีเข้ม
เพิ่มใน v5.2.0เปลี่ยนรูปลักษณ์ภายนอกของผืนผ้าใบด้วยยูทิลิตี้เพื่อให้เข้ากับบริบทต่างๆ เช่น แถบนำทางสีเข้ม ใน ที่นี้เราเพิ่ม.text-bg-dark
ไปยัง the .offcanvas
และ.btn-close-white
to .btn-close
เพื่อการจัดสไตล์ที่เหมาะสมด้วยผ้าออฟแคนวาสสีเข้ม หากคุณมีดรอปดาวน์อยู่ภายใน ให้พิจารณาเพิ่ม.dropdown-menu-dark
ใน.dropdown-menu
.
ออฟแคนวาส
วางเนื้อหา offcanvas ที่นี่
<div class="offcanvas offcanvas-start show text-bg-dark" tabindex="-1" id="offcanvasDark" aria-labelledby="offcanvasDarkLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasDarkLabel">Offcanvas</h5>
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="offcanvasDark" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p>Place offcanvas content here.</p>
</div>
</div>
ตอบสนอง
เพิ่มใน v5.2.0คลาส offcanvas ที่ตอบสนองจะซ่อนเนื้อหานอกวิวพอร์ตจากจุดพักและจุดพักที่ระบุ เหนือเบรกพอยต์นั้น เนื้อหาภายในจะทำงานตามปกติ ตัวอย่างเช่น.offcanvas-lg
ซ่อนเนื้อหาใน offcanvas ใต้lg
เบรกพอยต์ แต่แสดงเนื้อหาเหนือlg
เบรกพอยต์
offcanvas ที่ตอบสนอง
นี่คือเนื้อหาภายใน.offcanvas-lg
ไฟล์.
<button class="btn btn-primary d-lg-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasResponsive" aria-controls="offcanvasResponsive">Toggle offcanvas</button>
<div class="alert alert-info d-none d-lg-block">Resize your browser to show the responsive offcanvas toggle.</div>
<div class="offcanvas-lg offcanvas-end" tabindex="-1" id="offcanvasResponsive" aria-labelledby="offcanvasResponsiveLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasResponsiveLabel">Responsive offcanvas</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#offcanvasResponsive" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p class="mb-0">This is content within an <code>.offcanvas-lg</code>.</p>
</div>
</div>
มีคลาส offcanvas ที่ตอบสนองได้สำหรับแต่ละเบรกพอยต์
.offcanvas
.offcanvas-sm
.offcanvas-md
.offcanvas-lg
.offcanvas-xl
.offcanvas-xxl
ตำแหน่ง
ไม่มีตำแหน่งเริ่มต้นสำหรับส่วนประกอบ offcanvas ดังนั้นคุณต้องเพิ่มคลาสตัวปรับแต่งด้านล่าง
.offcanvas-start
วาง offcanvas ไว้ทางด้านซ้ายของวิวพอร์ต (แสดงไว้ด้านบน).offcanvas-end
วาง offcanvas ไว้ทางด้านขวาของวิวพอร์ต.offcanvas-top
วาง offcanvas ไว้ที่ด้านบนของวิวพอร์ต.offcanvas-bottom
วาง offcanvas ไว้ที่ด้านล่างของวิวพอร์ต
ลองใช้ตัวอย่างด้านบน ด้านขวา และด้านล่างด้านล่าง
ท็อปแคนวาส
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasTop" aria-controls="offcanvasTop">Toggle top offcanvas</button>
<div class="offcanvas offcanvas-top" tabindex="-1" id="offcanvasTop" aria-labelledby="offcanvasTopLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasTopLabel">Offcanvas top</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
...
</div>
</div>
Offcanvas ถูกต้อง
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight">Toggle right offcanvas</button>
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" aria-labelledby="offcanvasRightLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasRightLabel">Offcanvas right</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
...
</div>
</div>
ด้านล่าง Offcanvas
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasBottom" aria-controls="offcanvasBottom">Toggle bottom offcanvas</button>
<div class="offcanvas offcanvas-bottom" tabindex="-1" id="offcanvasBottom" aria-labelledby="offcanvasBottomLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasBottomLabel">Offcanvas bottom</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body small">
...
</div>
</div>
การเข้าถึง
เนื่องจากแผง offcanvas เป็นกรอบโต้ตอบแบบโมดอล ดังนั้นอย่าลืมเพิ่มaria-labelledby="..."
— อ้างอิงชื่อ offcanvas— ลงใน.offcanvas
. โปรดทราบว่าคุณไม่จำเป็นต้องเพิ่มrole="dialog"
เนื่องจากเราได้เพิ่มผ่าน JavaScript แล้ว
CSS
ตัวแปร
เพิ่มใน v5.2.0ในฐานะที่เป็นส่วนหนึ่งของแนวทางการพัฒนาตัวแปร CSS ของ Bootstrap ขณะนี้ offcanvas ใช้ตัวแปร CSS ใน.offcanvas
เครื่องเพื่อปรับแต่งตามเวลาจริงที่ได้รับการปรับปรุง ค่าสำหรับตัวแปร CSS ถูกกำหนดผ่าน Sass ดังนั้นยังคงรองรับการปรับแต่ง Sass ด้วยเช่นกัน
--#{$prefix}offcanvas-zindex: #{$zindex-offcanvas};
--#{$prefix}offcanvas-width: #{$offcanvas-horizontal-width};
--#{$prefix}offcanvas-height: #{$offcanvas-vertical-height};
--#{$prefix}offcanvas-padding-x: #{$offcanvas-padding-x};
--#{$prefix}offcanvas-padding-y: #{$offcanvas-padding-y};
--#{$prefix}offcanvas-color: #{$offcanvas-color};
--#{$prefix}offcanvas-bg: #{$offcanvas-bg-color};
--#{$prefix}offcanvas-border-width: #{$offcanvas-border-width};
--#{$prefix}offcanvas-border-color: #{$offcanvas-border-color};
--#{$prefix}offcanvas-box-shadow: #{$offcanvas-box-shadow};
ตัวแปร Sass
$offcanvas-padding-y: $modal-inner-padding;
$offcanvas-padding-x: $modal-inner-padding;
$offcanvas-horizontal-width: 400px;
$offcanvas-vertical-height: 30vh;
$offcanvas-transition-duration: .3s;
$offcanvas-border-color: $modal-content-border-color;
$offcanvas-border-width: $modal-content-border-width;
$offcanvas-title-line-height: $modal-title-line-height;
$offcanvas-bg-color: $modal-content-bg;
$offcanvas-color: $modal-content-color;
$offcanvas-box-shadow: $modal-content-box-shadow-xs;
$offcanvas-backdrop-bg: $modal-backdrop-bg;
$offcanvas-backdrop-opacity: $modal-backdrop-opacity;
การใช้งาน
ปลั๊กอิน offcanvas ใช้คลาสและคุณลักษณะบางอย่างเพื่อจัดการกับงานหนัก:
.offcanvas
ซ่อนเนื้อหา.offcanvas.show
แสดงเนื้อหา.offcanvas-start
ซ่อน offcanvas ทางด้านซ้าย.offcanvas-end
ซ่อน offcanvas ทางด้านขวา.offcanvas-top
ซ่อน offcanvas ไว้ด้านบน.offcanvas-bottom
ซ่อน offcanvas ที่ด้านล่าง
เพิ่มปุ่มปิดที่มีdata-bs-dismiss="offcanvas"
แอตทริบิวต์ ซึ่งจะเรียกใช้ฟังก์ชัน JavaScript อย่าลืมใช้<button>
องค์ประกอบกับองค์ประกอบเพื่อให้ทำงานได้อย่างถูกต้องในทุกอุปกรณ์
ผ่านแอตทริบิวต์ข้อมูล
สลับ
เพิ่มdata-bs-toggle="offcanvas"
และ a data-bs-target
หรือhref
ให้กับองค์ประกอบเพื่อกำหนดการควบคุมองค์ประกอบ offcanvas หนึ่งรายการโดยอัตโนมัติ แอตทริบิวต์data-bs-target
ยอมรับตัวเลือก CSS เพื่อนำไปใช้กับ offcanvas อย่าลืมเพิ่มคลาสoffcanvas
ให้กับองค์ประกอบ offcanvas หากคุณต้องการให้เปิดโดยค่าเริ่มต้น ให้เพิ่มคลาสshow
เพิ่มเติม
อนุญาตให้ออกไป
การเลิกจ้างสามารถทำได้ด้วยdata
แอตทริบิวต์บนปุ่มภายใน offcanvasดังที่แสดงด้านล่าง:
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
หรือบนปุ่มนอกออฟแคนวาสโดยใช้data-bs-target
ดังที่แสดงด้านล่าง:
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#my-offcanvas" aria-label="Close"></button>
ผ่านจาวาสคริปต์
เปิดใช้งานด้วยตนเองด้วย:
const offcanvasElementList = document.querySelectorAll('.offcanvas')
const offcanvasList = [...offcanvasElementList].map(offcanvasEl => new bootstrap.Offcanvas(offcanvasEl))
ตัวเลือก
เนื่องจากตัวเลือกสามารถส่งผ่านแอตทริบิวต์ข้อมูลหรือ JavaScript คุณจึงเพิ่มชื่อตัวเลือกต่อท้ายได้ เช่น เดียวdata-bs-
กับใน data-bs-animation="{value}"
ตรวจสอบให้แน่ใจว่าได้เปลี่ยนประเภทเคสของชื่อตัวเลือกจาก “ camelCase ” เป็น “ kebab-case ” เมื่อส่งตัวเลือกผ่านแอตทริบิวต์ data เช่น ใช้data-bs-custom-class="beautifier"
แทนdata-bs-customClass="beautifier"
.
ใน Bootstrap 5.2.0 ส่วนประกอบทั้งหมดสนับสนุนแอตทริบิวต์ข้อมูลที่สงวนไว้สำหรับทดลองdata-bs-config
ซึ่งสามารถจัดเก็บการกำหนดค่าส่วนประกอบอย่างง่ายเป็นสตริง JSON เมื่อองค์ประกอบมีdata-bs-config='{"delay":0, "title":123}'
และdata-bs-title="456"
แอตทริบิวต์ ค่าสุดท้ายtitle
จะเป็น456
และแอตทริบิวต์ข้อมูลที่แยกจากกันจะแทนที่ค่าที่ให้ไว้data-bs-config
ใน นอกจากนี้ แอตทริบิวต์ข้อมูลที่มีอยู่ยังสามารถเก็บค่า JSON เช่นdata-bs-delay='{"show":0,"hide":150}'
.
ชื่อ | พิมพ์ | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|---|
backdrop |
บูลีนหรือสตริงstatic |
true |
ใช้ฉากหลังบนร่างกายในขณะที่ offcanvas เปิดอยู่ หรือระบุstatic ฉากหลังที่ไม่ปิด offcanvas เมื่อคลิก |
keyboard |
บูลีน | true |
ปิด offcanvas เมื่อกดปุ่ม Escape |
scroll |
บูลีน | false |
อนุญาตให้เลื่อนเนื้อหาขณะเปิด offcanvas |
วิธีการ
วิธีการและการเปลี่ยนแบบอะซิงโครนัส
เมธอด API ทั้งหมดเป็นแบบอะซิงโครนัสและเริ่มต้นการเปลี่ยนแปลง พวกเขาจะกลับไปที่ผู้โทรทันทีที่เริ่มเปลี่ยน แต่ ก่อน ที่จะสิ้นสุด นอกจากนี้ การเรียกเมธอดบนคอมโพเนนต์การเปลี่ยนจะถูกละเว้น
เปิดใช้งานเนื้อหาของคุณเป็นองค์ประกอบ offcanvas ยอมรับตัวเลือกobject
เสริม
คุณสามารถสร้างอินสแตนซ์ offcanvas ด้วยตัวสร้าง ตัวอย่างเช่น
const bsOffcanvas = new bootstrap.Offcanvas('#myOffcanvas')
วิธี | คำอธิบาย |
---|---|
getInstance |
วิธีการ แบบคงที่ซึ่งช่วยให้คุณได้รับอินสแตนซ์ offcanvas ที่เชื่อมโยงกับองค์ประกอบ DOM |
getOrCreateInstance |
เมธอด แบบคงที่ซึ่งช่วยให้คุณได้รับอินสแตนซ์ offcanvas ที่เชื่อมโยงกับองค์ประกอบ DOM หรือสร้างใหม่ในกรณีที่ไม่ได้เริ่มต้น |
hide |
ซ่อนองค์ประกอบ offcanvas กลับไปที่ผู้โทรก่อนที่องค์ประกอบ offcanvas จะถูกซ่อนจริงๆ (กล่าวคือ ก่อนที่hidden.bs.offcanvas เหตุการณ์จะเกิดขึ้น) |
show |
แสดงองค์ประกอบ offcanvas กลับไปยังผู้เรียกก่อนที่องค์ประกอบ offcanvas จะถูกแสดงจริง (เช่น ก่อนshown.bs.offcanvas เหตุการณ์จะเกิดขึ้น) |
toggle |
สลับองค์ประกอบ offcanvas เพื่อแสดงหรือซ่อน กลับไปยังผู้เรียกก่อนที่องค์ประกอบ offcanvas จะถูกแสดงหรือซ่อนอยู่จริง (เช่น ก่อนshown.bs.offcanvas orhidden.bs.offcanvas จะเกิดขึ้น) |
เหตุการณ์
คลาส offcanvas ของ Bootstrap เผยให้เห็นเหตุการณ์บางอย่างสำหรับการเชื่อมต่อกับฟังก์ชัน offcanvas
ประเภทงาน | คำอธิบาย |
---|---|
hide.bs.offcanvas |
เหตุการณ์นี้เริ่มทำงานทันทีเมื่อhide มีการเรียกเมธอด |
hidden.bs.offcanvas |
เหตุการณ์นี้เริ่มทำงานเมื่อองค์ประกอบ offcanvas ถูกซ่อนจากผู้ใช้ (จะรอให้การเปลี่ยน CSS เสร็จสมบูรณ์) |
hidePrevented.bs.offcanvas |
เหตุการณ์นี้จะเริ่มทำงานเมื่อมีการแสดงภาพออฟแคนวาส ฉากหลังเป็นstatic ภาพ และมีการคลิกภายนอกออฟแคนวาส เหตุการณ์ยังเริ่มทำงานเมื่อกดปุ่ม Escape และ ตั้งค่า ตัวkeyboard เลือกเป็นfalse |
show.bs.offcanvas |
เหตุการณ์นี้จะเริ่มทำงานทันทีเมื่อมีshow การเรียกเมธอดของอินสแตนซ์ |
shown.bs.offcanvas |
เหตุการณ์นี้เริ่มทำงานเมื่อมีการทำให้องค์ประกอบ offcanvas ปรากฏแก่ผู้ใช้ (จะรอให้การเปลี่ยน CSS เสร็จสมบูรณ์) |
const myOffcanvas = document.getElementById('myOffcanvas')
myOffcanvas.addEventListener('hidden.bs.offcanvas', event => {
// do something...
})