# Tabs 标签页

# 介绍

通过标签切换多个内容容器。

# 使用指南

# 一般用法

<tms-tabs>
  <tms-tab wx:for="{{listData}}" wx:key="index" bind:on-tab-change="onChange" title="{{item.title}}">
    <view class="demo-tab-body">
      这是 {{item.title}} 的内容
    </view>
  </tms-tab>
</tms-tabs>
Component({
  data: {
    listData: [
      {
        title: '标签一',
      },
      {
        title: '标签2',
      },
      {
        title: '标签3',
      },
      {
        title: '标签4',
      },
      {
        title: '标签5',
      },
      {
        title: '标签6',
      },
      {
        title: '标签7',
      },
    ],
  },
  methods:{
    onChange(event) {
      const { index } = event.detail;
    },
  }
})

# 设置区域内最大标签数量

<tms-tabs>
  <tms-tab wx:for="{{listData}}" wx:key="index" title="{{item.title}}" scrollThreshold="{{3}}">
    <view class="demo-tab-body">
      这是 {{item.title}} 的内容
    </view>
  </tms-tab>
</tms-tabs>

# 标题收缩模式

<tms-tabs>
  <tms-tab wx:for="{{listData}}" wx:key="index" title="{{item.title}}" width-shrink>
    <view class="demo-tab-body">
      这是 {{item.title}} 的内容
    </view>
  </tms-tab>
</tms-tabs>

# 自定义样式

<tms-tabs>
  <tms-tab wx:for="{{listData}}" wx:key="index" title="{{item.title}}" 
           title-style="{{index===1&&'font-size:20px;'}}">
    <view class="demo-tab-body">
      这是 {{item.title}} 的内容
    </view>
  </tms-tab>
</tms-tabs>

# 受控模式

<tms-tabs bind:on-tab-change="onChange" bind:on-tab-change="onChange" current-index="{{currentIndex}}">
  <tms-tab wx:for="{{listData}}" wx:key="index" title="{{item.title}}">
    <view class="demo-tab-body">
      这是 {{item.title}} 的内容
    </view>
  </tms-tab>
</tms-tabs>
Component({
  data: {
    currentIndex: 0,
    listData: [
      {
        title: '标签一',
      },
      {
        title: '标签2',
      },
      {
        title: '标签3',
      },
      {
        title: '标签4',
      },
      {
        title: '标签5',
      },
      {
        title: '标签6',
      },
      {
        title: '标签7',
      },
    ],
  },
  methods:{
    onChange(event) {
      const { index } = event.detail;
      this.setData({
        currentIndex: index,
      });
    },
  }
})

# API

tabs props

属性 说明 类型 默认值 版本
current-index 控制当前显示哪个标签,传入对应数组下标 number 0
scroll-threshold 最多显示几个标签,每个标签平分宽度。 number 4
width-shrink 标签从左往右排列,宽度自适应,scroll-shreshold参数无效 boolean false
touch-scrollable 开启手势滑动切换页面 boolean true
scroll-animation 切换页面时开启过渡动画 boolean true
sticky 标签自动吸附到顶部 boolean false
offset-top 吸顶时与顶部的距离,单位 px Number 0
control 受控模式,点击或滑动不会自动切换标签 boolean false
indicator-style 自定义指示条元素的style string -

tab props

属性 说明 类型 默认值 版本
title 标签文本内容 string -
title-style 定义这个标签的元素样式 string -

# EVENTS

属性 说明 类型
bind:on-tab-change 点击非当前标签事件 (event) => {}

# CSS变量

// 标题文本大小
--tabs-tab-font-size: 28rpx;
// 标题padding
--tabs-tab-padding: 10rpx 20rpx 30rpx;
// 标题背景色
--tabs-tab-background: #FFF;
// 指示器高度
--tabs-indicator-height: 4rpx;
// 指示器宽度
--tabs-indicator-width: 40rpx;
// 指示器背景色
--tabs-indicator-background: #ee0a24;

# FAQ