Bootstrap5 侧边栏导航
Bootstrap5 侧边栏侧边栏类似于模态框,在移动端设备中比较常用。
创建滑动导航
我们可以通过 JavaScript 来设置是否在 .offcanvas
类后面添加 .show
类,从而控制侧边栏的显示与隐藏:
.offcanvas
隐藏内容 (默认).offcanvas.show
显示内容
可以使用 a 链接的 href
属性或者 button 元素使用 data-bs-target
属性来设置侧边栏。这两种情况都需要使用 data-bs-toggle="offcanvas"
。
创建滑动导航实例如下:
实例
<aclass="btn btn-primary"data-bs-toggle="offcanvas"href="#offcanvasExample"role="button"aria-controls="offcanvasExample">
使用链接的 href 属性
</a><buttonclass="btn btn-primary"type="button"data-bs-toggle="offcanvas"data-bs-target="#offcanvasExample"aria-controls="offcanvasExample">
按钮中使用 data-bs-target
</button><divclass="offcanvas offcanvas-start"tabindex="-1"id="offcanvasExample"aria-labelledby="offcanvasExampleLabel"><divclass="offcanvas-header"><h5class="offcanvas-title"id="offcanvasExampleLabel">侧边栏</h5><buttontype="button"class="btn-close text-reset"data-bs-dismiss="offcanvas"aria-label="Close"></button></div><divclass="offcanvas-body"><div>
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
</div><divclass="dropdown mt-3"><buttonclass="btn btn-secondary dropdown-toggle"type="button"id="dropdownMenuButton"data-bs-toggle="dropdown">
Dropdown button
</button><ulclass="dropdown-menu"aria-labelledby="dropdownMenuButton"><li><aclass="dropdown-item"href="#">Action</a></li><li><aclass="dropdown-item"href="#">Another action</a></li><li><aclass="dropdown-item"href="#">Something else here</a></li></ul></div></div></div>
尝试一下 »
侧边栏的方向
可以通过以下四个类来控制侧边栏的方向:
.offcanvas-start
显示在左侧,如上实例。.offcanvas-end
显示在右侧.offcanvas-top
显示在顶部.offcanvas-bottom
显示在底部
实例
<buttonclass="btn btn-primary"type="button"data-bs-toggle="offcanvas"data-bs-target="#offcanvasTop"aria-controls="offcanvasTop">顶部导航栏</button><divclass="offcanvas offcanvas-top"tabindex="-1"id="offcanvasTop"aria-labelledby="offcanvasTopLabel"><divclass="offcanvas-header"><h5id="offcanvasTopLabel">显示在顶部导航栏</h5><buttontype="button"class="btn-close text-reset"data-bs-dismiss="offcanvas"aria-label="Close"></button></div><divclass="offcanvas-body">
...
</div></div>
尝试一下 »
实例
<buttonclass="btn btn-primary"type="button"data-bs-toggle="offcanvas"data-bs-target="#offcanvasRight"aria-controls="offcanvasRight">右侧侧边栏</button><divclass="offcanvas offcanvas-end"tabindex="-1"id="offcanvasRight"aria-labelledby="offcanvasRightLabel"><divclass="offcanvas-header"><h5id="offcanvasRightLabel">显示在右侧侧边栏</h5><buttontype="button"class="btn-close text-reset"data-bs-dismiss="offcanvas"aria-label="Close"></button></div><divclass="offcanvas-body">
...
</div></div>
尝试一下 »
实例
<buttonclass="btn btn-primary"type="button"data-bs-toggle="offcanvas"data-bs-target="#offcanvasBottom"aria-controls="offcanvasBottom">底部导航栏</button><divclass="offcanvas offcanvas-bottom"tabindex="-1"id="offcanvasBottom"aria-labelledby="offcanvasBottomLabel"><divclass="offcanvas-header"><h5class="offcanvas-title"id="offcanvasBottomLabel">显示在底部导航栏</h5><buttontype="button"class="btn-close text-reset"data-bs-dismiss="offcanvas"aria-label="Close"></button></div><divclass="offcanvas-body small">
...
</div></div>
尝试一下 »
设置背景及背景是否可滚动
我们可以在弹出侧边栏的时候设置 <body>
元素是否可以滚动,也可以设置是否显示一个背景画布。 使用 data-bs-scroll
属性来设置 <body>
元素是否可滚动,data-bs-backdrop
来切换是否显示背景画布。
实例
<buttonclass="btn btn-primary"type="button"data-bs-toggle="offcanvas"data-bs-target="#offcanvasScrolling"aria-controls="offcanvasScrolling">body 元素可以滚动</button><buttonclass="btn btn-primary"type="button"data-bs-toggle="offcanvas"data-bs-target="#offcanvasWithBackdrop"aria-controls="offcanvasWithBackdrop">显示画布(默认)</button><buttonclass="btn btn-primary"type="button"data-bs-toggle="offcanvas"data-bs-target="#offcanvasWithBothOptions"aria-controls="offcanvasWithBothOptions">允许滚动及显示画布</button><divclass="offcanvas offcanvas-start"data-bs-scroll="true"data-bs-backdrop="false"tabindex="-1"id="offcanvasScrolling"aria-labelledby="offcanvasScrollingLabel"><divclass="offcanvas-header"><h5class="offcanvas-title"id="offcanvasScrollingLabel">正文内容可以滚动</h5><buttontype="button"class="btn-close text-reset"data-bs-dismiss="offcanvas"aria-label="Close"></button></div><divclass="offcanvas-body"><p>滚动页面查看效果。</p></div></div><divclass="offcanvas offcanvas-start"tabindex="-1"id="offcanvasWithBackdrop"aria-labelledby="offcanvasWithBackdropLabel"><divclass="offcanvas-header"><h5class="offcanvas-title"id="offcanvasWithBackdropLabel">使用背景画布</h5><buttontype="button"class="btn-close text-reset"data-bs-dismiss="offcanvas"aria-label="Close"></button></div><divclass="offcanvas-body"><p>正文内容不可滚动</p></div></div><divclass="offcanvas offcanvas-start"data-bs-scroll="true"tabindex="-1"id="offcanvasWithBothOptions"aria-labelledby="offcanvasWithBothOptionsLabel"><divclass="offcanvas-header"><h5class="offcanvas-title"id="offcanvasWithBothOptionsLabel">使用背景画布,正文内容可滚动</h5><buttontype="button"class="btn-close text-reset"data-bs-dismiss="offcanvas"aria-label="Close"></button></div><divclass="offcanvas-body"><p>滚动页面查看效果。</p></div></div>
尝试一下 »