SepTabs 标签页组件 v1.4.0

支持 line/card/border-card/segment 四种类型 · top/bottom/left/right 四种位置 · 拖拽排序(默认开启) · 右键菜单 · 搜索面板 · 批量关闭确认 · onAdd 异步确认 · onContextMenu 自定义菜单 · keepDOM LRU 缓存 · hideAdd · Badge 弹性动画 · RTL 支持 · 标签分组折叠

1. 基础用法(line 类型)

功能说明:items 配置标签列表,activeKey 指定默认激活项,onChange 回调获取切换事件。支持 addTab 动态添加、setActiveKey 编程式切换。

HTML 声明式标签
JS API 初始化

2. 溢出滚动(多标签 + 左右箭头)

功能说明:scrollable 开启溢出滚动,标签超出容器宽度时自动显示左右滚动箭头;scrollStep 控制每次点击滚动的像素距离(默认 120px)。内置 ResizeObserver 自动检测尺寸变化。

HTML 声明式标签
JS API 初始化

3. Card 类型 + 可关闭 + 可新增

功能说明:type='card' 卡片式标签,closable 每个标签可单独控制关闭按钮,addable 显示 "+" 按钮动态新增标签,onEdit 监听新增/删除事件。

HTML 声明式标签
JS API 初始化

4. 尺寸对比(small / middle / large)

功能说明:size 控制标签高度与字体大小,支持 大小:small(28px)、middle(32px,默认)、large(40px)三种规格。

HTML 声明式标签
JS API 初始化

5. 位置切换(top / bottom / left / right)

功能说明:tabPosition 支持 top/bottom/left/right 四种定位。left/right 为纵向布局,标签垂直排列,溢出时显示上下滚动箭头。

HTML 声明式标签
JS API 初始化

6. border-card 类型

功能说明:type='border-card' 带边框的卡片式布局,与 card 类似但标签栏有背景填充和边框环绕效果。

HTML 声明式标签
JS API 初始化

7. beforeLeave 切换拦截(阻止切换到 Tab3)

功能说明:beforeLeave(newKey, oldKey) 切换前回调,返回 false 阻止切换。可用于表单未保存拦截、权限控制等场景。本例中"锁定Tab"无法离开。

JS API 初始化

8. 右键菜单(关闭 / 关闭其他 / 关闭右侧 / 关闭全部)

功能说明:右键标签弹出菜单,默认包含 关闭、关闭其他、关闭右侧、关闭全部 四项操作。可通过 contextMenuItems 自定义菜单项。点击标签外部自动关闭菜单。

JS API 初始化

9. 拖拽排序

功能说明:draggable 开启拖拽排序,按住标签拖到目标位置释放即可重排。复用 SepBase.enableDragSort 通用拖拽方法。
拖拽结束后通过 onTabDragEnd(keys) 回调获取新顺序。

JS API 初始化

9.5 增强功能:标题提示 / 加载状态 / 中键关闭

功能说明:tabTooltip 默认开启,标题超长时悬浮显示完整标题;loading 为标签添加加载图标,可用 setLoading(key, true/false) 动态切换;中键关闭内置支持,鼠标中键点击标签即可关闭(需 closable)。

JS API 初始化

9.6 增强功能 II:自定义指示器 / 自定义渲染 / 触屏滑动

功能说明:indicator 支持 size/origin/align/color 配置;tabRender 完全自定义标签内容(返回 HTML 字符串);swipeable 开启后可在内容区左右滑动切换标签(移动端)。

JS API 初始化

10. Tab 图标(前缀/后缀)

功能说明:prefixIcon / suffixIcon 支持 SVG 字符串、Emoji 文本或 DOM 元素,分别渲染在标题前后。

JS API 初始化

11. 自定义关闭图标

功能说明:closeIcon 支持 SVG 字符串或文本自定义关闭按钮图标,全局所有标签统一生效。

JS API 初始化

12. 自定义右键菜单项

功能说明:contextMenuItems 完全自定义右键菜单项,每个菜单项可设置 icon、text 和 onClick 回调。
按下空格键可打开自定义右键菜单。

JS API 初始化

13. 标签栏额外内容 (tabBarExtraContent)

功能说明:tabBarExtraContent.left 和 tabBarExtraContent.right 在标签栏左右两侧插入自定义内容(支持 HTML 字符串或 DOM 元素)。

JS API 初始化

14. 居中 & 拉伸

功能说明:centered 将标签居中排列,stretch 将标签等宽拉伸填充整行。

JS API 初始化

15. 懒加载

功能说明:lazy 开启后面板仅在首次激活时渲染,后续切换保留 DOM。配合 destroyInactiveTabPane 可每次切换销毁旧面板释放内存。

JS API 初始化

16. 滑动指示条自定义

功能说明:indicator 传入 { size, origin } 自定义激活指示条的宽度和偏移。

JS API 初始化

17. 滚动回调 & 更多图标

功能说明:onTabScroll 实时回调滚动位置。moreIcon 自定义溢出"更多"按钮图标。
点击 ScrollTo Tab8 编程式滚动到指定标签。

JS API 初始化

18. 响应式自适应折叠

功能说明:collapseWidth: 750 设置折叠阈值,容器宽度小于 750px 时自动隐藏滚动箭头,溢出标签归入"更多"下拉菜单。setCollapseWidth(0) 可关闭此功能恢复滚动模式。
⚡ 缩小浏览器窗口试试!当宽度 < 750px 时自动切换到折叠模式。

JS API 初始化

19. 入场动画 & 生命周期回调

功能说明:tabAnimation: true 新标签入场时自带 0.25s 渐变+微位移动画。onShow(key) / onHide(key) 在标签切换时触发,可用于埋点或数据预加载。
控制台打开 F12 查看生命周期回调日志。

JS API 初始化

20. Badge 溢出格式化 & 单标签关闭保护

功能说明:maxBadge 设置徽标溢出阈值(默认 99),超过后显示"N+"。closeLastTab 控制是否允许关闭最后一个标签(默认 false,最后一签不显示关闭按钮)。

JS API 初始化

21. 固定标签 (Pin) & 关闭前确认

功能说明:pinned: true 固定标签始终排在最前面,不参与溢出滚动;onBeforeClose(key) 关闭前回调,返回 false 阻止关闭,支持异步 Promise。
右键菜单可切换固定/取消固定,关闭"首页"标签会弹出确认对话框。

JS API 初始化

22. Segment 分段类型

功能说明:type: 'segment' 按钮组式标签页,适用于筛选器/视图切换场景(如"全部/待审/已审")。激活项实心填充主色,无指示器。
配合 stretch: true 可让标签等宽填满容器。

JS API 初始化

23. Tab 自定义颜色主题

功能说明:单个标签支持 color 字段自定义主题色,激活态背景/边框、非激活态文字均使用该颜色。
适用于告警标签(红色)、成功标签(绿色)等需要视觉区分的场景。

JS API 初始化

24. 批量关闭确认回调 (onBeforeCloseAll)

功能说明:onBeforeCloseAll(action, keys) 在"关闭其他/关闭右侧/关闭全部"前触发,返回 false 阻止,支持异步 Promise。
右键任意标签 → 关闭其他/关闭右侧/关闭全部,会弹出确认对话框。
🔒保护机制:"首页"设为 pinned + closable:false,右键菜单不显示关闭项,批量关闭自动跳过,永远不会被关闭。

JS API 初始化
右键标签试试批量关闭

25. 标签搜索 (Ctrl+K)

功能说明:开启 searchable: true 后,按 Ctrl+K(Mac 为 ⌘+K)唤起搜索面板,输入关键词实时过滤标签。
支持 ↑/↓ 键选择、Enter 切换、Esc 关闭。标签较多时可快速定位。

JS API 初始化
提示:按 Ctrl+K 唤起搜索面板

19. onAdd 异步确认(新增)

功能说明:点击 + 按钮时触发 onAdd 回调,可返回 false 阻止添加,或返回 Promise 异步确认(如弹窗)。也支持 hideAdd 隐藏按钮仅通过 API 添加。

20. keepDOM LRU 策略(增强)

功能说明:keepDOM: 3 保留最近 3 个面板 DOM,超出自动回收最早的非激活面板。切换标签后最早的非激活面板 DOM 会被移除。与 true(全保留)和 false(仅当前)区别开。

21. RTL 支持(新增)

功能说明:rtl: true 启用从右到左排布,适用于阿拉伯语等场景。标签栏、inkBar、滚动箭头、badge 间距自动镜像翻转。

22. 标签分组折叠(新增)

功能说明:标签指定 group 属性后自动聚合,插入分组头(▶/▼ 折叠/展开)。折叠后仅保留激活标签可见,其余隐藏。支持 toggleGroup / collapseAllGroups / expandAllGroups。