使用vue的绑定类名功能写选项卡

类似于这样的一个选项卡,content模块的li首先设置全是隐藏,表达式正确添加对应类名,让对应li显示,其他隐藏。

注:选项卡内部写echarts图的时候,鼠标点击第二个面板,echarts不显示,在点击事件里添加上

this.$nextTick(()=>{
        this.wthChart1.resize();
 })

便得到了解决。

html代码:

   <div>
      <ul class="tab-title">
        <li v-for="(item,index) in tabArr" :key="index" @click="handleList(index)" :class="{active:index==current}">
          <i :class="`iconfont ${item.icon}`"></i>
          <span>{{item.title}}</span>
        </li>
      </ul>
      <ul class="tab-content">
        <li :class="'tab-content-list '+(0==current ? 'showBlock': '')">
         1
        </li>
        <li :class="'tab-content-list '+(1==current ? 'showBlock': '')">
           2
        </li>
        <li  :class="'tab-content-list '+(2==current ? 'showBlock': '')">
          3
        </li>
      </ul>
    </div>

js代码:

    export default {
      name: "cmPanleLeft",
      data(){
        return{
          tabArr:[
            {
              title:'海岸线',
              icon:'iconbingtu'
            },
            {
              title:'围填海',
              icon:'iconbingtu'
            },
            {
              title:'海岸带',
              icon:'iconbingtu'
            }
          ],
          current:0
        }
      },
      methods:{
        handleList(index){
          // 点击选中当前tab,给当前tab绑定类名,其余不绑定
          this.current = index;
          this.$nextTick(()=>{
            this.wthChart1.resize();
          })
        }
       }
    }

css代码:

  .tab-title{
    float: left;
    width: 40px;
    height: 100%;
    background: #2f3a4c;
    color: #fff;
    font-size: 16px;
  }
  .tab-title li{
    height: 140px;
    text-align: center;
    cursor: pointer;
  }
  .tab-title .iconfont{
    color: #4199fd;
    font-size: 18px;
    position: relative;
    top: 23px;
  }
  .tab-title li span{
    width: 30px;
    display: inline-block;
    text-align: center;
    margin: 0 5px;
    position: relative;
    top: 26px;
  }
  .tab-title .active{
    background: #2180eb;

  }
  .tab-title .active .iconfont{
    color: #fff;
  }
  /*选项卡内容*/
  .tab-content{
    float: left;
    width: 414px;
    height: 100%;
    /*background: #fff;*/
  }
  .tab-content .tab-content-list{
    height: 100%;
    display: none;
  }
  .tab-content .showBlock{
    display: block;
  }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值