Skip to content

IndexBar 索引栏 ​

移动端分节列表 + 右侧字母索引导航:点按或拖拽字母跳转分节,滚动时反向联动当前字母高亮(scrollspy)。适合通讯录、城市选择等长列表的快速定位。

items 数据通过 sections 传入;字母侧栏从 sections 自动派生,无需单独维护。

基础用法 ​

sections 传 JSON 数组 [{ key, title?, items: [{ label, value? }] }],title 缺省回退 key,条目 value 缺省回退 label。设置 height 让列表在固定高度内滚动。

基础用法

事件反馈 ​

点击条目派发 oas-item-click(detail: { value, label, section });点按 / 拖拽字母或滚动联动导致高亮字母变化时派发 oas-change(detail: { key },初始渲染不派发)。

事件反馈

条目:(点击条目查看)
高亮字母:(点字母或滚动列表)

关闭吸顶(sticky) ​

分节头默认吸顶(position: sticky);显式 sticky="false" 关闭,分节头随列表滚动。

sticky=false 关闭吸顶

滚动联动(scrollspy) ​

列表滚动时高亮最近一个越过分节头检测线的分节。height 缺省时不启用内部滚动,滚动联动改为监听页面视口。

不设 height:列表自适应内容高

RTL 方向 ​

侧栏位于 inline-end(逻辑属性,随书写方向翻转):LTR 下在右侧,RTL 下在左侧。

RTL(侧栏在左)

变量定制 ​

不加 prop、纯 CSS 变量开口,dark 下自动走 token:

  • --oas-index-bar-letter-color:字母常态色,默认次要文字 token
  • --oas-index-bar-letter-active-color:当前字母色,默认主色 token
  • --oas-index-bar-letter-active-bg:当前字母底色,默认 hover 背景 token
  • --oas-index-bar-header-bg:分节头背景,默认 hover 背景 token

变量定制(当前字母色 + 分节头底色)

API ​

oas-index-bar ​

属性 ​

属性说明类型默认值
height列表区固定高度(px),超出时列表内部滚动;缺省时列表自适应内容高、滚动联动监听视口string—
sections分节列表 JSON:[{ key, title?, items: [{ label, value? }] }];字母侧栏从 sections 自动派生(key 唯一,重复保留首个),title 缺省回退 key,条目 value 缺省回退 labelstring[]
sticky分节头吸顶(默认 true);显式 sticky="false" 关闭stringtrue

事件 ​

事件说明
oas-change当前高亮字母变化(点按/拖拽跳转或滚动联动),detail: { key };初始渲染不派发
oas-item-click点击列表条目,detail: { value, label, section }(section 为分节 key)

CSS 变量 ​

CSS 变量默认值
--oas-index-bar-header-bgvar(--oas-color-bg-hover)
--oas-index-bar-letter-active-bgvar(--oas-color-bg-hover)
--oas-index-bar-letter-active-colorvar(--oas-color-primary)
--oas-index-bar-letter-colorvar(--oas-color-text-secondary)

基于 MIT OR Apache-2.0 双许可发布