ScrollArea 滚动区域
扩展原生滚动功能,支持跨浏览器的自定义样式,并提供针对大型列表的虚拟滚动支持。
组件特性
- 跨浏览器的自定义滚动条样式。
- 支持垂直、水平或双向滚动。
- 支持平滑滚动 (smooth scrolling)。
- 提供滚动位置和触边检测事件。
- 虚拟滚动 支持,高效渲染海量数据列表。
双向滚动
Example
平滑滚动与事件
Example
与表格集成
Recent Orders
Example
无限滚动
Example
虚拟滚动
启用虚拟滚动,可以毫无性能压力地渲染包含成千上万条数据的列表。
Example
API
属性 (Props)
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
type | 'auto' | 'always' | 'scroll' | 'hover' | 'hover' | 描述滚动条的可见性行为。 |
direction | 'vertical' | 'horizontal' | 'both' | 'vertical' | 滚动区域的方向。 |
smooth | boolean | false | 是否启用平滑滚动行为。 |
scrollThreshold | number | 0 | 距离边缘多少像素时触发滚动触边事件。 |
virtualScroll | boolean | false | 是否启用虚拟滚动模式。 |
items | any[] | [] | 启用虚拟滚动时需要渲染的数据数组。 |
itemHeight | number | 40 | 虚拟滚动模式下,每一项的固定高度(像素)。 |
事件 (Events)
| 名称 | 参数 | 说明 |
|---|---|---|
scroll-position | (position: { x: number; y: number }) | 滚动发生时触发,提供当前滚动的坐标。 |
scroll-top | - | 滚动到顶部边缘时触发(受 threshold 影响)。 |
scroll-bottom | - | 滚动到底部边缘时触发(受 threshold 影响)。 |
scroll-left | - | 滚动到左侧边缘时触发(受 threshold 影响)。 |
scroll-right | - | 滚动到右侧边缘时触发(受 threshold 影响)。 |
插槽 (Slots)
| 名称 | 作用域 | 说明 |
|---|---|---|
default | - | 需要滚动的主要内容。 |
item | { item: any, index: number } | 虚拟滚动模式下,自定义每一项渲染的模板插槽。 |