ScrollBar
一个独立的滚动条组件,支持可选的箭头按钮、键盘导航和可拖动的滑块。
基本用法
Renderable API
import { ScrollBarRenderable, createCliRenderer } from "@opentui/core"
const renderer = await createCliRenderer()
const scrollbar = new ScrollBarRenderable(renderer, {
id: "scrollbar",
orientation: "vertical",
height: 10,
showArrows: true,
trackOptions: {
backgroundColor: "#222222",
foregroundColor: "#888888",
},
onChange: (position) => {
console.log("Scroll position:", position)
},
})
// 将滚动条连接到你的内容
scrollbar.scrollSize = 200
scrollbar.viewportSize = 20
scrollbar.scrollPosition = 0
renderer.root.add(scrollbar)
scrollbar.focus()
键盘控制
获得焦点时,滚动条响应以下按键:
Up/Down或k/j用于垂直滚动条Left/Right或h/l用于水平滚动条PageUp/PageDown用于较大跨度的跳转Home/End跳转到起始/结束位置
Construct API
暂未提供。目前请使用
ScrollBarRenderable。
属性
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
orientation | "vertical" 或 "horizontal" | - | 滚动条方向 |
showArrows | boolean | false | 显示箭头按钮 |
arrowOptions | ArrowOptions | - | 箭头按钮的样式 |
trackOptions | Partial<SliderOptions> | - | 轨道和滑块的样式 |
scrollSize | number | 0 | 可滚动的总尺寸 |
viewportSize | number | 0 | 视口的可见尺寸 |
scrollPosition | number | 0 | 当前滚动位置 |
scrollStep | number | - | scrollBy(..., "step") 时的步进大小 |
onChange | (position: number) => void | - | 滚动位置变化时触发的回调 |