跳到主要内容

标签页 Tabs

选项卡切换组件,用于在不同的内容区域之间进行切换

用法示例

基础用法

<ti-tabs id="ti-tabs"></ti-tabs>

自定义字段名称

<ti-tabs id="ti-tabs" tab-key="name"></ti-tabs>

主体内容使用插槽,内置swiper

<ti-tabs id="ti-tabs" use-slot></ti-tabs>

设置单屏平铺显示的tab数量

当实际tabs总量小于设置的count值时,默认按当前总数平分整个屏幕。可以设置autoGap为false, 取消默认效果。

<ti-tabs id="ti-tabs1"></ti-tabs>
<ti-tabs id="ti-tabs2"></ti-tabs>
<ti-tabs id="ti-tabs3"></ti-tabs>

设置每个tab的宽度

当实际tabs总宽度小于屏幕宽度时,默认按当前总数平分整个屏幕。可以设置autoGap为false, 取消默认效果。

<ti-tabs id="ti-tabs1"></ti-tabs>
<ti-tabs id="ti-tabs2"></ti-tabs>
<ti-tabs id="ti-tabs3"></ti-tabs>

设置相邻tab之间的间隔

当实际tabs总宽度小于屏幕宽度时,默认会增加tab之间间隙,到达撑满一屏。可以设置autoGap为false, 取消默认效果。

<ti-tabs id="ti-tabs1"></ti-tabs>
<ti-tabs id="ti-tabs2"></ti-tabs>
<ti-tabs id="ti-tabs3"></ti-tabs>

tabs组件内置吸顶

<ti-tabs id="ti-tabs"></ti-tabs>

禁用项

<ti-tabs id="ti-tabs"></ti-tabs>

风格设置

<ti-tabs id="ti-tabs1" variant="pure"></ti-tabs>
<ti-tabs id="ti-tabs2" variant="block"></ti-tabs>
<ti-tabs id="ti-tabs3" variant="calendar"></ti-tabs>
<ti-tabs id="ti-tabs4" variant="multi"></ti-tabs>

风格线设置

<ti-tabs id="ti-tabs1" divider="default"></ti-tabs>
<ti-tabs id="ti-tabs2" divider="line"></ti-tabs>
<ti-tabs id="ti-tabs3" divider="shadow"></ti-tabs>

ti-tabs API

属性 Properties

名称类型必填默认值说明备注
variantstringpure标签页的风格,可选值:block pure calendar multi-
tabsarray | Array<Option>-数据项, ['首页', '我的'] 或者 [{label: '首页'},{label: '我的'}]-
active-tabnumber | string0选中项索引,或者 tab-key 对应的值-
disabled-tabsarray-禁用的数据项-
durationnumber500滑动动画时长-
dividerstring-分割线类型,可选值:line shadow default-
stickybooleanfalse是否有吸顶效果-
offset-topnumber0吸顶距离,单位px-
use-pure-cssbooleanfalse使用css的position: sticky实现-
countnumber5单屏展示的菜单数量-
tab-widthnumber-每个菜单的宽度,单位 px,设置此项后 count 则无效-
gapnumber-1tab(文字)间距,单位 px,设置此项后 tab-width 和 count 无效-
auto-gapbooleantrue当 tab 总宽度不够一屏,采用平铺模式-
use-slotbooleanfalse是否启用插槽,即内置 swiper 组件-
ext-stylestring | Record<string, string>-根节点样式-
tab-keystringlabeltabs 如果是对象数组,对应每项的关键词 key-
aliasRecord<string, string>-数据项默认字段名label description tag date的别名,用于自定义数据,可替代tabKey属性-
scroll-with-animationbooleantruetab切换,是否使用过度动画-
async-changebooleanfalse是否采用受控模式,异步设置active-tab-

Option

API 中的 tabs 可以为一个对象数组,数组中的每一个对象有以下 key:

名称类型必填默认值说明备注
labelstring-标题-
descriptionstring-variant设置calendar或者multi可用,标题下描述文字-
tagstring-variant设置multi可用,最下方标签,如设置日期标签国庆节等-
datestring-variant设置multi可用,设置日期如:2022-12-01,如果是当前日期,下标tag将会写成当前-

事件 Events

名称参数列表描述备注
change(e: CustomEvent<{index: number, item: Record<string, string>}>) => void当前激活的标签-
fixed(e: CustomEvent<{isFixed: boolean}>) => void使用吸顶功能是,吸顶状态改变是触发-
click(e: CustomEvent<{index: number, item: Record<string, string>}>) => void点击tab项时触发-
disabled(e: CustomEvent<{index: number, item: Record<string, string>}>) => void点击禁用的tab项时触发-

插槽 Slots

名称说明备注
tab-content-${index}每个标签页展示项,index为tabs的索引,如果使用插槽请用可扩展样式类名swiper-class设置容器高度。-

外部样式类 External Classes

名称说明备注
tab-classtab容器样式名-
tab-active-class激活项tab容器样式名-
tab-text-classtab文字样式名可设置缺省或者截断
tab-text-active-class激活项tab文字样式名
swiper-classswiper 容器样式名-
tabs-classtabs 样式名-
tabs-mark-class当前项底部标志类名如果修改下划线的宽度,在自定义样式类里加--tabs-mark-width: 10rpx
ext-class根节点样式类名-

CSS 变量 CSS Variable

变量默认值说明备注
--tabs-background-color#ffftabs背景颜色-
--tabs-swiper-background-color#ffftabs下方swiper内容部分背景颜色-
--tabs-tab-height88rpxtabs高度-
--tabs-swiper-height150rpxtabs下方swiper内容部分高度-
--tabs-tab-color#757575tabs文字颜色-
--tabs-tab-font-size28rpxtabs文字字号-
--tabs-active-text-color#212121tabs激活项文字颜色-
--tabs-active-line-color#fa2c19tabs激活项下标颜色,默认跟随主题色-