Bootstrap5 側邊欄側邊欄類似于模态框,在移動端裝置中比較常用。
我們可以通過 JavaScript 來設定是否在 <code>.offcanvas</code> 類後面添加 <code>.show</code> 類,進而控制側邊欄的顯示與隐藏:
<code>.offcanvas</code> 隐藏内容 (預設)
<code>.offcanvas.show</code> 顯示内容
可以使用 a 連結的 <code>href</code> 屬性或者 button 元素使用 <code>data-bs-target</code> 屬性來設定側邊欄。這兩種情況都需要使用 <code>data-bs-toggle="offcanvas"</code>。
建立滑動導航執行個體如下:
<a class="btn btn-primary" data-bs-toggle="offcanvas" href="#offcanvasExample" role="button" aria-controls="offcanvasExample">
使用連結的 href 屬性
</a>
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" aria-controls="offcanvasExample">
按鈕中使用 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">側邊欄</h5>
<button type="button" class="btn-close text-reset" 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 class="dropdown mt-3">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown">
Dropdown button
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<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>
可以通過以下四個類來控制側邊欄的方向:
<code>.offcanvas-start</code> 顯示在左側,如上執行個體。
<code>.offcanvas-end</code> 顯示在右側
<code>.offcanvas-top</code> 顯示在頂部
<code>.offcanvas-bottom</code> 顯示在底部
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasTop" aria-controls="offcanvasTop">頂部導航欄</button>
<div class="offcanvas offcanvas-top" tabindex="-1" id="offcanvasTop" aria-labelledby="offcanvasTopLabel">
<h5 id="offcanvasTopLabel">顯示在頂部導航欄</h5>
...
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight">右側側邊欄</button>
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" aria-labelledby="offcanvasRightLabel">
<h5 id="offcanvasRightLabel">顯示在右側側邊欄</h5>
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasBottom" aria-controls="offcanvasBottom">底部導航欄</button>
<div class="offcanvas offcanvas-bottom" tabindex="-1" id="offcanvasBottom" aria-labelledby="offcanvasBottomLabel">
<h5 class="offcanvas-title" id="offcanvasBottomLabel">顯示在底部導航欄</h5>
<div class="offcanvas-body small">
我們可以在彈出側邊欄的時候設定 <code><body></code> 元素是否可以滾動,也可以設定是否顯示一個背景畫布。 使用 <code>data-bs-scroll</code> 屬性來設定 <code><body></code> 元素是否可滾動,<code>data-bs-backdrop</code> 來切換是否顯示背景畫布。
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasScrolling" aria-controls="offcanvasScrolling">body 元素可以滾動</button>
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasWithBackdrop" aria-controls="offcanvasWithBackdrop">顯示畫布(預設)</button>
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasWithBothOptions" aria-controls="offcanvasWithBothOptions">允許滾動及顯示畫布</button>
<div class="offcanvas offcanvas-start" data-bs-scroll="true" data-bs-backdrop="false" tabindex="-1" id="offcanvasScrolling" aria-labelledby="offcanvasScrollingLabel">
<h5 class="offcanvas-title" id="offcanvasScrollingLabel">正文内容可以滾動</h5>
<p>滾動頁面檢視效果。</p>
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasWithBackdrop" aria-labelledby="offcanvasWithBackdropLabel">
<h5 class="offcanvas-title" id="offcanvasWithBackdropLabel">使用背景畫布</h5>
<p>正文内容不可滾動</p>
<div class="offcanvas offcanvas-start" data-bs-scroll="true" tabindex="-1" id="offcanvasWithBothOptions" aria-labelledby="offcanvasWithBothOptionsLabel">
<h5 class="offcanvas-title" id="offcanvasWithBothOptionsLabel">使用背景畫布,正文内容可滾動</h5>
