React 组件

UGScrollbar 滚动容器

基于原生滚动实现稳定的纵向、横向和双向滚动,保留浏览器性能、键盘能力与命令式控制。

导入方式

按需从包入口导入组件,并在应用入口引入一次样式文件。

tsx
import { UGScrollbar } from '@ug666/ui-react'

基础用法

固定高度后,内容超出容器才产生纵向滚动。可聚焦区域应提供清晰的 aria-label。

通知项目 11 分钟前
通知项目 22 分钟前
通知项目 33 分钟前
通知项目 44 分钟前
通知项目 55 分钟前
通知项目 66 分钟前
通知项目 77 分钟前
通知项目 88 分钟前
通知项目 99 分钟前
通知项目 1010 分钟前
通知项目 1111 分钟前
通知项目 1212 分钟前

横向滚动

用于宽表格、时间轴和横向卡片,不压缩内容本身。

项目 1
项目 2
项目 3
项目 4
项目 5
项目 6
项目 7
项目 8

最大高度

内容较少时保持自然高度,超过最大高度后再滚动,适合动态列表和下拉面板。

通知项目 11 分钟前
通知项目 22 分钟前
通知项目 33 分钟前
通知项目 44 分钟前

手动滚动

ref 直接指向真实滚动元素;scrollTo 与原生滚动事件无需额外适配层。

scrollTop: 0px
通知项目 11 分钟前
通知项目 22 分钟前
通知项目 33 分钟前
通知项目 44 分钟前
通知项目 55 分钟前
通知项目 66 分钟前
通知项目 77 分钟前
通知项目 88 分钟前
通知项目 99 分钟前
通知项目 1010 分钟前
通知项目 1111 分钟前
通知项目 1212 分钟前
通知项目 1313 分钟前
通知项目 1414 分钟前
通知项目 1515 分钟前
通知项目 1616 分钟前

到达边界

到达边界只触发一次,离开后再次抵达才重新触发,适合按需加载下一页。

最近到达:尚未触发

通知项目 11 分钟前
通知项目 22 分钟前
通知项目 33 分钟前
通知项目 44 分钟前
通知项目 55 分钟前
通知项目 66 分钟前
通知项目 77 分钟前
通知项目 88 分钟前
通知项目 99 分钟前
通知项目 1010 分钟前
通知项目 1111 分钟前
通知项目 1212 分钟前
通知项目 1313 分钟前
通知项目 1414 分钟前

滚动条外观

外观不改变滚动行为;隐藏轨道时仍应保留键盘、滚轮和触控操作。

auto

通知项目 11 分钟前
通知项目 22 分钟前
通知项目 33 分钟前
通知项目 44 分钟前
通知项目 55 分钟前
通知项目 66 分钟前
通知项目 77 分钟前

thin

通知项目 11 分钟前
通知项目 22 分钟前
通知项目 33 分钟前
通知项目 44 分钟前
通知项目 55 分钟前
通知项目 66 分钟前
通知项目 77 分钟前

hidden

通知项目 11 分钟前
通知项目 22 分钟前
通知项目 33 分钟前
通知项目 44 分钟前
通知项目 55 分钟前
通知项目 66 分钟前
通知项目 77 分钟前

属性

属性类型默认值说明
orientation'vertical' | 'horizontal' | 'both''vertical'设置允许滚动的方向。both 适合二维画布或宽表格。
heightnumber | string设置固定高度;数字自动转换为 px。
maxHeightnumber | string设置最大高度,内容不足时容器保持自然高度。
widthnumber | string设置固定宽度;数字自动转换为 px。
maxWidthnumber | string设置最大宽度,常用于横向滚动区域。
scrollbar'auto' | 'thin' | 'hidden''thin'控制原生滚动条外观;hidden 只隐藏轨道,不关闭滚动。
overscroll'auto' | 'contain' | 'none''contain'控制滚动到边界后是否继续传递给外层页面。
distancenumber0距边界多少像素时触发 onEndReached。
onScrollUIEventHandler<HTMLDivElement>原生滚动事件,可读取 currentTarget.scrollTop 和 scrollLeft。
onScrollPosition(position: ScrollbarPosition) => void直接返回 scrollTop 与 scrollLeft,与 Vue scroll 事件的数据合同一致。
onEndReached(direction: ScrollbarEndDirection) => void首次抵达 top、right、bottom 或 left 边界时触发;离开边界后可再次触发。
refRef<HTMLDivElement>获取真实滚动元素,可调用 scrollTo、scrollBy 或直接读取滚动尺寸。
原生属性HTMLAttributes<HTMLDivElement>透传 tabIndex、role、aria-*、data-*、className 和 style 等属性。