1.0.2 • Published 2 years ago

multi-tab v1.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

多tab滚动容器,基于better-scroll实现,支持位置保持,侧滑切tab,tab自动吸顶等功能。

在线演示

http://39.98.139.162:3001/demo npm.io

本地运行

  1. git clone
  2. yarn install
  3. yarn dev
  4. 0.0.0.0:8000

说明

基于better-scroll实现。 只接入了上拉加载更多的功能,需要更多功能请看 https://better-scroll.github.io/docs/zh-CN/plugins/

接入

npm i multi-tab --save 或 yarn add multi-tab -S

<multi-tab :tabList="tabList" v-model="tabIndex" @click="onClick">
  <div
    slot="header"
    style="height:150px;background:#a8a8a8;position:sticky;top:0; display:flex;justify-content: center;align-items: center;"
  >
    header区域
  </div>
  <!-- <div slot="nav">自定义tabs</div> -->
  <div v-for="(item, index) in tabList" :slot="index" :key="index" style="min-height: 1px">
    <page :ref="`page${index}`"></page>
  </div>
</multi-tab>

import MultiTab from 'multi-tab'
export default {
  components: {
    'multi-tab': MultiTab
  }
}

参考demo

src/library/components/multiTab/demo

Attributes

参数说明类型可选值默认值
v-model当前选中的tab下标Number--0
tabListtabs数组Array--[]
isSticky自动吸顶Boolean--true
tidy吸顶的前提下,开启 上滑自动隐藏tab,下滑自动展示tab功能。Boolean--false
stickyTop吸顶距离Number--0

方法

将bsBody挂载到了Vue,子组件可之间this.bsBody使用。 Vue.prototype.bsBody = this.bsBody; 【注意】当tab页高度变化时,请调用 this.bsBody.updateHeight();

Events

事件名称说明回调参数
click点击tab触发index

Scoped Slot

name说明
headertab以上部分的slot, eg: <div slot="header">HEADER</div>
nav自定义的nav, eg: <div slot="nav"></div>
${index}0-n, 嵌入每一页, eg: <div v-for="(item, index) in tabList" :slot="index" :key="index" style="min-height: 1px"><page :ref="`page${index}`"></page></div>

参考

https://juejin.cn/post/7008356543444254757 https://market.m.taobao.com/app/idleFish-F2e/mini-3c/home.html