Skip to content

Drawer 抽屉

屏幕边缘滑出的面板。

基础用法

最简单的用法,从右侧滑出。

自定义方向

支持 toprightbottomleft 四个方向。

自定义尺寸

可以通过 size 属性控制宽度或高度。

亚克力玻璃态

开启 glass 属性,享受旗舰级的视觉体验。

可调节大小

开启 resizable 属性,允许用户通过拖拽边缘来调整抽屉尺寸。

带页脚的操作

通过 show-footerfooter 插槽添加操作按钮。

嵌套抽屉

Drawer 组件支持多级嵌套,通过 z-index 自动管理确保内层抽屉始终覆盖在外层之上。

局部容器弹出 (Inner Mode)

开启 inner 属性,抽屉将以 absolute 方式渲染在最近的 relative 父容器内。支持所有个方向,且自动禁用 Teleport 以确保层级正确。

自定义关闭图标

通过 close-icon 插槽,您可以完全自定义右上角的关闭触发区域。

禁用圆角 (直角风格)

默认开启圆角(旗舰审美),通过 round 属性可快速切换为硬朗的直角风格。

遮罩层 (Modal)

通过 modal 属性可以开启或关闭背景遮罩层。

在 Nuxt 中使用

API

Props

属性名说明类型默认值
modelValue / v-model是否显示抽屉booleanfalse
title标题string | (() => VNode) | Component-
placement抽屉位置'top' | 'right' | 'bottom' | 'left''right'
size抽屉大小 (宽度或高度)string | number'30%'
modal是否显示遮罩层booleantrue
closeOnClickModal点击遮罩层是否关闭booleantrue
closeOnPressEscape按下 ESC 是否关闭booleantrue
showClose是否显示关闭按钮booleantrue
closeIcon自定义关闭图标名称string'close'
showHeader是否显示头部booleantrue
showFooter是否显示页脚booleanfalse
lockScroll是否锁定视口滚动booleantrue
glass是否开启亚克力玻璃模式booleanfalse
resizable是否可调整大小booleanfalse
minSize最小大小 (px)number150
maxSize最大大小 (px)number1000
destroyOnClose关闭时是否销毁内容booleanfalse
zIndex手动设置 z-index 层级number-
teleportTo挂载节点string | HTMLElement'body'
beforeClose关闭前的钩子,执行 done 才会关闭(done: () => void) => void-
round是否显示圆角(旗舰级审美自适应)booleantrue
inner是否在指定容器内弹出 (开启绝对定位模式)booleanfalse
customClass抽屉容器附加类名string-
modalClass遮罩层附加类名string-
titleStyle头部标题自定义样式CSSProperties | string-
contentStyle内容主体自定义样式CSSProperties | string-
footerStyle页脚自定义样式CSSProperties | string-
drawerStyle抽屉面板整体自定义样式CSSProperties | string-

Events

事件名说明回调参数
open面板打开时触发-
opened面板开启动画结束时触发-
close面板关闭时触发-
closed面板关闭动画结束时触发-
resize调整大小时触发(size: number)
update:modelValuev-model 更新事件(value: boolean)

Slots

插槽名说明
default抽屉的核心内容区域
header自定义整个头部区域 (覆盖标题和关闭按钮)
title仅自定义标题文字部分
footer自定义页脚内容区域
close-icon自定义关闭按钮内部图标

Expose

属性名说明类型
drawerRef抽屉容器 DOM 元素引用HTMLElement | null
handleClose手动触发关闭流程 (支持 beforeClose 钩子)(isClickModal?: boolean) => void

主题变量 (CSS Variables)

组件深度集成 YH-UI 设计系统,所有颜色变量已与全局主题系统对接,自动支持暗黑模式:

变量名说明默认值
--yh-drawer-bg-color抽屉面板背景色var(--yh-bg-color-overlay)
--yh-drawer-shadow抽屉阴影强度var(--yh-shadow-lg)
--yh-drawer-title-color标题文本颜色var(--yh-text-color-primary)
--yh-drawer-border-color分割线/边框颜色var(--yh-border-color-lighter)
--yh-drawer-header-height头部高度56px
--yh-drawer-footer-height底部高度60px
--yh-drawer-padding内容区内边距20px
--yh-drawer-radius圆角大小var(--yh-radius-xl)
--yh-drawer-transition动画持续时间var(--yh-transition-duration)

Released under the MIT License.