NavigationDrawer 侧边抽屉栏
侧边抽屉栏用于在页面侧边提供导航功能,使用户能够快速访问不同的页面或内容。
通常,可以在侧边抽屉栏中使用 <mdui-list>
组件来添加导航项。
使用方法
按需导入组件:
import 'mdui/components/navigation-drawer.js';
按需导入组件的 TypeScript 类型:
import type { NavigationDrawer } from 'mdui/components/navigation-drawer.js';
使用示例:
<mdui-navigation-drawer close-on-overlay-click class="example-drawer">
<mdui-button>关闭侧边抽屉栏</mdui-button>
</mdui-navigation-drawer>
<mdui-button>打开侧边抽屉栏</mdui-button>
<script>
const navigationDrawer = document.querySelector(".example-drawer");
const openButton = navigationDrawer.nextElementSibling;
const closeButton = navigationDrawer.querySelector("mdui-button");
openButton.addEventListener("click", () => navigationDrawer.open = true);
closeButton.addEventListener("click", () => navigationDrawer.open = false);
</script>
注意事项:
该组件默认使用 position: fixed
定位。
当 modal
属性为 false
,且断点大于等于 --mdui-breakpoint-md
时,会自动在 body
上添加 padding-left
或 padding-right
样式,以避免页面内容被该组件遮挡。
但在以下两种情况下,会默认使用 position: absolute
定位:
contained
属性为true
时。- 当组件位于
<mdui-layout></mdui-layout>
中时。此时不会添加padding-left
或padding-right
样式。
示例
位于指定容器内
默认情况下,侧边抽屉栏会相对于当前窗口,在页面左侧或右侧显示。如果你希望把侧边抽屉栏放在指定容器内,可以添加 contained
属性,此时侧边抽屉栏会相对于父元素显示(你需要自行在父元素上添加样式 position: relative; overflow: hidden;
)。
模态化
添加 modal
属性可以在打开侧边抽屉栏时显示遮罩层。注意在窗口或父元素宽度小于 --mdui-breakpoint-md
时,会无视该参数,始终会显示遮罩层。
添加 close-on-esc
属性,可以在按下 ESC 键时关闭侧边抽屉栏。
添加 close-on-overlay-click
属性,可以在点击遮罩层时关闭侧边抽屉栏。
位于右侧
通过将 placement
属性设置为 right
,可以将侧边抽屉栏显示在页面右侧。
API
属性
HTML 属性 | JavaScript 属性 | Reflect | 类型 | 默认值 |
---|---|---|---|---|
open | open | boolean | false | |
是否打开抽屉栏 | ||||
modal | modal | boolean | false | |
抽屉栏打开时,是否显示遮罩层 在窄屏设备上(屏幕宽度小于 | ||||
close-on-esc | closeOnEsc | boolean | false | |
在有遮罩层的情况下,按下 ESC 键是否关闭抽屉栏 | ||||
close-on-overlay-click | closeOnOverlayClick | boolean | false | |
点击遮罩层时,是否关闭抽屉栏 | ||||
placement | placement | 'left' | 'right' | 'left' | |
抽屉栏的位置。可选值包括:
| ||||
contained | contained | boolean | false | |
默认情况下,抽屉栏相对于 Note:设置该属性时,必须在父元素上手动设置样式 | ||||
order | order | number | - | |
该组件在 |
事件
名称 |
---|
open |
抽屉栏打开之前触发。可以通过调用 |
opened |
抽屉栏打开动画完成之后触发 |
close |
抽屉栏关闭之前触发。可以通过调用 |
closed |
抽屉栏关闭动画完成之后触发 |
overlay-click |
点击遮罩层时触发 |
CSS 自定义属性
名称 |
---|
--shape-corner |
组件的圆角大小。可以指定一个具体的像素值;但更推荐引用设计令牌 |
--z-index |
组件的 CSS |