代码演示

如何引入

jsx
import { SideSheet } from '@kousum/semi-ui-vue';

基本

默认侧边栏从右滑出,支持点击遮罩区关闭。

demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

自定义位置

可以通过设置 placement 属性设置侧边栏滑出位置,支持top, bottom, left, right

demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

自定义尺寸

可以通过设置 size 属性设置侧边栏尺寸,支持 small(400px), medium(684px), large(920px),仅在 placementleftright 时生效。 0.29.0 版本之后支持。若默认的尺寸不满足你的需求,你还可以通过设置 width 属性自行设置宽度,例如 width={900} / width={'800px'}

demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

可操作的外部区域

0.29.0 版本之后,当 mask={false}时允许对外部区域进行操作。

注意
当 SideSheet 是默认渲染在 body 中时(即不传入 getPopupContainer 参数),会在打开时自动给 body 添加 overflow: hidden 来禁止滚动。如果你希望外部区域依然可滚动,可以将 disableScroll 设为false
demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

渲染在指定容器

可以通过 getPopupContainer 指定父级 DOM,弹层将会渲染至该 DOM 中, 0.29.0 版本之后支持。

注意
容器需要手动设置样式 `overflow: hidden`,否则会导致动画溢出
demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

自定义内容区域

可以通过自定义 titlefooter(v>=1.3.0) 等创建出丰富的内容样式。

demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

API 参考

属性说明类型默认值版本
afterVisibleChange面板展示/隐藏时动画结束触发的回调(isVisble: boolean) => void-1.0.0
bodyStyle面板内容的样式CSSProperties--
className类名string--
closable是否允许通过右上角的关闭按钮关闭booleantrue-
closeIcon关闭按钮的 iconReactNode<IconClose />-
closeOnEsc允许通过键盘事件 Esc 触发关闭booleanfalse1.0.0
disableScroll默认渲染在 document.body 层时是否禁止 body 的滚动,即给 body 添加 overflow: hiddenbooleantrue-
footer侧边栏底部ReactNodenull1.3.0
getPopupContainer指定父级 DOM,弹层将会渲染至该 DOM 中,自定义需要设置 position: relative 这会改变浮层 DOM 树位置,但不会改变视图渲染位置。() => HTMLElement-0.29.0
headerStyle面板头部的样式CSSProperties-1.0.0
height高度,位置为 topbottom 时生效number | string400-
keepDOM关闭 SideSheet 时是否保留内部组件不销毁booleanfalse1.18.0
mask是否显示遮罩,在 0.29.0 版本之后,当 mask={false} 时允许对外部区域进行操作booleantrue-
maskClosable是否允许通过点击遮罩来关闭面板booleantrue-
maskStyle遮罩的样式CSSProperties--
motion是否允许动画booleantrue-
placement侧边栏滑出位置,支持top, bottom, left, rightstringright-
size尺寸,支持 small(448px), medium(684px), large(920px),仅在 leftright 时生效stringsmall0.29.0
style可用于设置样式CSSProperties--
title面板的标题ReactNode--
visible面板是否可见booleanfalse-
width宽度,位置为 leftright 时生效number | string448-
zIndex弹层 z-index 值number10000.29.0
onCancel取消面板时的回调函数(e: MouseEvent) => void--

Accessibility

ARIA

  • SideSheet 具有 dialog role 来表示它是一个弹窗组件, 内部 header 具有 heading role 表明是 header。

设计变量

变量默认值用法
$color-sideSheet_mask-bgvar(--semi-color-overlay-bg)侧边栏打开后蒙层颜色
$color-sideSheet-bgvar(--semi-color-bg-2)侧边栏背景颜色
$color-sideSheet_main-textvar(--semi-color-text-0)侧边栏默认文本颜色
$color-sideSheet_header-borderBottomvar(--semi-color-border)侧边栏 header 底部边框颜色
显示第 1 条-第 4 条,共 4 条
  • 1

FAQ:

  • SideSheet 会自动禁止 body 的滚动吗?当 SideSheet 是默认渲染在 body 中时(即不传入 getPopupContainer 参数),会在打开时自动给 body 添加 overflow: hidden 来禁止滚动。可以通过 disableScroll={false} 允许滚动。