1. 程式人生 > 程式設計 >vue二選一tab欄切換新做法實現

vue二選一tab欄切換新做法實現

問題描述

在我們做專案的過程中,有時候會要做一些tab欄切換效果。有兩個tab的,有三個tab的,甚至有五六七八個tab的。平常我們直接拿餓了麼的tab元件用就行了,但是偶爾自己閒著沒事,自己寫個兩個tab切換效果的,即二選一效果。閒話少說,上動態效果圖

vue二選一tab欄切換新做法實現

本案例適合兩個tab的(三個tab的可以仿照我的寫,如果是四五個tab用餓了麼元件會更快些)

程式碼如下

HTML部分

<template>
 <div id="app">
  <div class="tabWrap">
   <!-- 這個結構是tab導航,並給其繫結對應的點選事件,在點選事件的回撥中
   去控制對應內容的顯示隱藏和樣式的修改即:tab的切換-->
   <div class="tabNav">
    <div class="navOne" @click="tabOne">tab1</div>
    <div class="navTwo" @click="tabTwo">tab2</div>
   </div>
   <!-- 這個結構是tab導航對應的內容 -->
   <div class="tabContent">
    <!-- 通過v-show控制隱藏,同一時刻隱藏一個顯示一個,就實現了tab欄的切換效果了 -->
    <div class="navOneBox" v-show="showTabOne">我是切換1</div>
    <div class="navTwoBox" v-show="showTabTwo">i am tab2</div>
   </div>
  </div>
 </div>
</template>

js部分

<script>
export default {
 name: "app",data() {
  return {
   showTabOne: true,// 二選一tab切換
   showTabTwo: false,// 二選一tab切換
  };
 },methods: {
  // 二選一tab欄切換
  tabOne() {
   /*
    點選tab1的時候,讓tab1顯示,tab2隱藏,即showTabOne為true,showTabTwo為false
    同時修改tab1的樣式使其"高亮",注意不要忘了修改tab2的樣式,使其"不高亮"。
    點選tab2的時候,也是同理。
   */
   this.showTabOne = true;
   this.showTabTwo = false;
   document.querySelector(".navOne").style.backgroundColor = "#fff";
   document.querySelector(".navTwo").style.backgroundColor = "#e3e3e3";
   document.querySelector(".navOne").style.color = "#3985EC";
   document.querySelector(".navTwo").style.color = "#80868D";
  },// 二選一tab欄切換
  tabTwo() {
   this.showTabTwo = true;
   this.showTabOne = false;
   document.querySelector(".navOne").style.backgroundColor = "#e3e3e3";
   document.querySelector(".navTwo").style.backgroundColor = "#fff";
   document.querySelector(".navTwo").style.color = "#3985EC";
   document.querySelector(".navOne").style.color = "#80868D";
  },},};
</script>

css部分

<style lang="less">
.tabNav {
 width: 126px;
 height: 30px;
 border-radius: 2px;
 background-color: #e3e3e3;
 display: flex;
 align-items: center;
 justify-content: space-evenly;
 .navOne {
  width: 60px;
  height: 26px;
  border-radius: 2px;
  background-color: #fff;
  color: #3985ec;
  font-size: 14px;
  font-weight: 500;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
 }
 .navTwo {
  width: 60px;
  height: 26px;
  color: #80868d;
  border-radius: 2px;
  font-size: 14px;
  font-weight: 500;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
 }
}
.tabContent {
 margin-top: 8px;
 .navOneBox {
  background-color: #bfa;
 }
 .navTwoBox {
  background-color: #baf;
 }
}
</style>

到此這篇關於vue二選一tab欄切換新做法實現的文章就介紹到這了,更多相關vue tab欄切換內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!