iview中 Tabs 标签页 指定显示对应的TabPane页面以及高度随内容撑开问题

1. 设置指定显示页面

<Tabs ref="tabs" :animated="false">
  <Tab-pane label="标题1" name="MigrationList">
      <MigrationList ref="migrationListRef"/>
    </Tab-pane>
    <Tab-pane label="标题2" name="AddMigrationList">
      <AddMigrationList/>
    </Tab-pane>
    <Tab-pane label="标题3" name="ScheduleList">
      <ScheduleList/>
    <div v-show="exceptionList.length">
        <br/>
        <ExceptionList/>
    </div>
    </Tab-pane>
  </Tabs>
this.$refs.tabs.activeKey = 'AddMigrationList'

2. 高度随内容撑开问题

animated: true时,高度不能随着内容的高度撑开,反而是由最高的tabPane决定的。

  • 使用动画时
    主要是通过translateX来进行水平方向的移动,来保证显示与隐藏
  • 不使用动画时
    切换时,会通过 display: none 使不该显示的tab项隐藏

可能是因为,使用动画的时候,不好控制display,从而导致高度被最高的那一个撑开了

3. 通过v-show打开动画效果,解决tab各自高度控制

在这里插入图片描述
在这里插入图片描述

<template>
  <Tabs @on-click="clickTab" value="name1">
    <TabPane label="标签一" name="name1" >
      <div style="height: 100px; backgroundColor: blu;border: 1px solid black;" v-show="tabName === 'name1'">
        标签一的内容
      </div>
    </TabPane>
    <TabPane label="标签二" name="name2">
      <div v-show="tabName === 'name2'" style="backgroundColor: blu;border: 1px solid black;">
        标签二的内容
      </div>
    </TabPane>
    <TabPane label="标签三" name="name3">
      <div style="height: 100px; backgroundColor: blu;border: 1px solid black;" v-show="tabName === 'name3'">
        标签三的内容
      </div>
    </TabPane>
  </Tabs>
</template>
<script>
  export default {
    data () {
      return {
        tabName: 'name1'
      }
    },
    methods: {
      clickTab(name) {
        this.tabName = name
      }
    }
  }
</script>

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值