Skip to content

Drawer 抽屉

有些时候,Dialog 组件并不满足我们的需求,比如你的表单很长,亦或是你需要临时展示一些文档。

基础用法

呼出一个临时的侧边栏,可以从四个方向触发。

自定义方向

你可以通过 direction 属性来改变抽屉打开的方向。

✨ 浮动风格 (Unique)

Fyoimiya UI 的抽屉组件支持独特的浮动风格。设置 floating 属性可以让抽屉悬浮在页面之上,而不是紧贴边缘。配合 round 属性使用,可以获得更加现代的视觉体验。

🔮 毛玻璃效果 (Unique)

在现代 UI 设计中,毛玻璃(Glass Morphism)是一种流行的设计趋势。设置 glass 属性,让你的抽屉拥有半透明的模糊背景效果。建议配合 floating 使用。

🎯 目标模糊 (Unique)

为了更好地引导用户视线,我们提供了 blur-target 属性。你可以指定一个 CSS 选择器(如 #app.main-content),当抽屉打开时,该目标区域会自动应用模糊滤镜。这比传统的全屏黑色遮罩更具沉浸感。

↔️ 可拖拽宽度

设置 draggable 属性,可以让用户通过拖拽边缘来改变抽屉的宽度。

🪜 嵌套抽屉

你可以在抽屉里再打开一个抽屉。为了保证层级正确,内部的抽屉建议设置 append-to-bodytrue

🎯 指定挂载容器

你可以通过 target 属性指定抽屉挂载的 DOM 节点。这允许你将抽屉局限在页面的某个特定区域内。

API

Drawer 属性

属性名说明类型默认值
model-value / v-model是否显示抽屉booleanfalse
title抽屉标题,也可通过具名 slot 传入string
direction打开方向'rtl' | 'ltr' | 'ttb' | 'btt''rtl'
size抽屉尺寸,可以是百分比或像素值string | number'30%'
modal是否需要遮罩层booleantrue
show-close是否显示关闭按钮booleantrue
before-close关闭前的回调,会暂停 Drawer 的关闭(done: () => void) => void
close-on-click-modal是否可以通过点击 modal 关闭 Drawerbooleantrue
close-on-press-escape是否可以通过按下 ESC 关闭 Drawerbooleantrue
with-header是否显示标题栏booleantrue
destroy-on-close控制是否在关闭 Drawer 之后将子元素全部销毁booleanfalse
floating是否开启浮动模式(悬浮不贴边)booleanfalse
round是否开启圆角样式booleanfalse
glass是否开启毛玻璃效果booleanfalse
blur-target指定打开时需要模糊的 DOM 元素选择器string
draggable是否开启拖拽宽度booleanfalse
target指定挂载的 DOM 节点选择器string'body'

Drawer 插槽

插槽名说明
default抽屉的内容
header抽屉标题的内容;如果设置了 title 属性,该插槽会被忽略
footer抽屉页脚的内容

Drawer 事件

事件名说明回调参数
openDrawer 打开的回调
openedDrawer 打开动画结束时的回调
closeDrawer 关闭的回调
closedDrawer 关闭动画结束时的回调