ScrollArea
自定义滚动区域,基于 reka-ui ScrollAreaRoot,内部自动提供垂直和水平 ScrollBar,在跨平台得到一致的滚动条样式。
Anatomy
ScrollArea滚动区域根,内部已挂载 Viewport、垂直 / 水平 ScrollBar 与 ScrollAreaCornerScrollBar可选,单独使用以自定义额外方向或覆写样式;根组件已默认包含两个方向
基本用法
垂直滚动
固定高度的容器超出时显示滚动条。
水平滚动
横向内容溢出
内部内容宽于 Viewport 时,底部自动出现水平滚动条。
自定义 Viewport
viewportClass
为 Viewport 单独追加 class,比如给内部容器设置 padding。
API
ScrollArea Props
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
class | string | — | 根容器 class;通常在此设置高度 / 宽度边界 |
viewportClass | string | — | Viewport 的额外 class,可用于 padding 等内部布局 |
type | 'auto' | 'always' | 'scroll' | 'hover' | 'hover' | 滚动条显示策略,透传自 reka-ui |
dir | 'ltr' | 'rtl' | — | 书写方向,透传自 reka-ui |
scrollHideDelay | number | 600 | scroll/hover 模式下滚动条隐藏延迟(ms) |
其余 props 透传至 reka-ui ScrollAreaRootProps。
ScrollBar Props
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
orientation | 'vertical' | 'horizontal' | 'vertical' | 滚动条方向 |
class | string | — | 滚动条额外 class |
其余 props 透传至 reka-ui ScrollAreaScrollbarProps。
Slots
| 插槽 | 作用域 | 说明 |
|---|---|---|
default (ScrollArea) | — | 滚动区域的内容;根组件会自动包进 Viewport |
可访问性
- 基于 reka-ui,原生滚动事件与键盘操作(方向键、PgUp/PgDn)均可用
- 滚动条为装饰性元素,内容区依然是标准可滚动区域,屏幕阅读器能正常遍历
- 请务必为根容器设置高度 / 宽度限制,否则不会出现滚动条