vant中tab标签栏下划线位置异常的解决方案

1.问题描述

通过使用了vant2中的tab标签栏引入了vue项目,可以实现切换的效果,但在使用的过程中发现,标签栏的下划线跟文字出现了不对齐的情况,效果如下图所示,下划线位置和流行并没有对齐

 2.原因

我在渲染这个tab标签栏的组件使用了v-show的指令,导致了下划线位置出错的情况

3.解决方案

方法一.如果项目中允许的话,可以将v-show改为v-if则可以解决这个问题

方法二:在tab标签栏的tabs上有resize重绘这个方法,可以调用这个来解决这个问题

方法二的代码实现:

// home.vue
<template>
    <tab :title="['流行', '新款', '精选']" @clickIndex="getIndex" v-show="isShow"             
        ref="tab2"></tab>
</template>

<script>
    export default{
        data(){
            // 这里通过isShow来控制tab组件的展示和隐藏
            isShow: false
        },
        // 监听isShow的变化,来调用tabs上的resize方法
        watch: {
            isShow(val){
                this.$refs.tab2.resize()
            }
        }
    }
</script>
// tab组件
<template>
  <div>
    <van-tabs v-model="active" ref="tab">
      <van-tab>1</van-tab>
      <van-tab>2</van-tab>
      <van-tab>3</van-tab>
    </van-tabs>
  </div>
</template>

<script>
export default {
  data () {
    return {
      active: 0
    }
  },
  methods: {
    
    resize () {
      // tabs上面有着resize方法,调用这个方法进行重绘,来解决下划线位置问题
      this.$refs.tab.resize()
    }
  }
  
}
</script>

在我的项目中我是用了第二种方法进行解决,效果如下

 

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值