Vue の 2 択タブバー切り替えの新しいアプローチ

Vue の 2 択タブバー切り替えの新しいアプローチ

問題の説明

プロジェクトに取り組んでいるときに、タブ バーの切り替え効果を作成する必要がある場合があります。タブが 2 つあるものもあれば、3 つあるもの、さらには 5 つ、6 つ、7 つ、8 つあるものもあります。通常は、Ele.me のタブ コンポーネントを使用するだけですが、時間があるときには、2 つのタブを切り替える、つまり 2 つの選択肢の効果を実現するタブ コンポーネントを作成することもあります。雑談はここまでにして、ダイナミックレンダリングを見てみましょう

このケースは2つのタブに適しています(3つのタブも私のように記述できます。4つまたは5つのタブがある場合は、Ele.meコンポーネントを使用する方が高速です)

コードは次のとおりです

HTML部分

<テンプレート>
 <div id="アプリ">
  <div class="tabWrap">
   <!-- この構造はタブナビゲーションであり、対応するクリックイベントがこれにバインドされています。クリックイベントのコールバックでは、対応するコンテンツの表示と非表示、スタイルの変更、つまりタブの切り替えが制御されます-->
   <div class="tabNav">
    <div class="navOne" @click="tabOne">タブ1</div>
    <div class="navTwo" @click="tabTwo">タブ2</div>
   </div>
   <!-- この構造はタブナビゲーションに対応するコンテンツです-->
   <div class="tabContent">
    <!-- v-show を使用して非表示を制御し、1 つを非表示にして 1 つを同時に表示することで、タブ バーの切り替え効果が得られます -->
    <div class="navOneBox" v-show="showTabOne">切り替え中 1</div>
    <div class="navTwoBox" v-show="showTabTwo">私はtab2です</div>
   </div>
  </div>
 </div>
</テンプレート>

js部分

<スクリプト>
エクスポートデフォルト{
 名前:「アプリ」、
 データ() {
  戻る {
   showTabOne: true, // 切り替える 2 つのタブのうち 1 つを選択します。 showTabTwo: false, // 切り替える 2 つのタブのうち 1 つを選択します。 };
 },
 メソッド: {
  // 2つのタブバースイッチのうち1つを選択します tabOne() {
   /*
    tab1をクリックすると、tab1が表示され、tab2が非表示になります。つまり、showTabOneはtrue、showTabTwoはfalseです。
    同時に、tab1 のスタイルを「強調表示」するように変更し、tab2 のスタイルを「強調表示解除」するように変更することを忘れないように注意してください。
    tab2 をクリックした場合も同様です。
   */
   タブのタイトルを 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";
  },
  // 2つのタブバーの切り替えのいずれかを選択します 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";
  },
 },
};
</スクリプト>

CSS部分

<スタイル lang="less">
.tabNav {
 幅: 126ピクセル;
 高さ: 30px;
 境界線の半径: 2px;
 背景色: #e3e3e3;
 ディスプレイ: フレックス;
 アイテムの位置を中央揃えにします。
 コンテンツの均等配置: スペースを均等に;
 .navOne{
  幅: 60ピクセル;
  高さ: 26px;
  境界線の半径: 2px;
  背景色: #fff;
  色: #3985ec;
  フォントサイズ: 14px;
  フォントの太さ: 500;
  ディスプレイ: フレックス;
  コンテンツの中央揃え: 中央;
  アイテムの位置を中央揃えにします。
  カーソル: ポインタ;
 }
 .navTwo {
  幅: 60ピクセル;
  高さ: 26px;
  色: #80868d;
  境界線の半径: 2px;
  フォントサイズ: 14px;
  フォントの太さ: 500;
  ディスプレイ: フレックス;
  コンテンツの中央揃え: 中央;
  アイテムの位置を中央揃えにします。
  カーソル: ポインタ;
 }
}
.tabコンテンツ{
 上マージン: 8px;
 .navOneBox {
  背景色: #bfa;
 }
 .navTwoBox {
  背景色: #baf;
 }
}
</スタイル>

Vue の 2 択タブバー切り替えの新しい実装に関するこの記事はこれで終わりです。Vue タブバー切り替えに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vueはタブバーのクリックのハイライト効果を実現します
  • Vueをベースにタブバーのコンテンツを切り替えたり、データをリアルタイムに更新する機能を実現

<<:  proxy_pass がパス パスに従って転送する場合の "/" 問題の詳細な説明

>>:  MySQLデーモンの起動に失敗したエラーの解決方法

推薦する

JavaScript が Jingdong の虫眼鏡の特殊効果を模倣

この記事では、Jingdong虫眼鏡を模倣したJavaScriptの具体的なコードを参考までに共有し...

LinuxのCPU負荷とCPU使用率の詳細な説明

CPU 負荷と CPU 使用率これらは両方とも、ある程度、マシンの忙しさを反映できます。 CPU 使...

Linux環境にJDKとTomcatをインストールする詳細な手順

目次1. JDKをインストールする手動インストール2. トムキャット1. JDKをインストールする注...

MySQLデータベースのデータテーブルに関する詳細な基本操作

目次1. 現在のデータベース内のテーブルを表示する2. テーブルを作成する3. 指定されたテーブル構...

Nginx ロードバランシング クラスタの実装

(1)実験環境youxi1 192.168.5.101 ロードバランサーyouxi2 192.168...

Vue Element-ui テーブルはツリー構造テーブルを実現します

この記事では、ツリー構造テーブルを実現するためのElement-uiテーブルの具体的なコードを参考ま...

docker compose を使用して FastDfs ファイル サーバーをインストールする詳細な例

ドッカーの作成 バージョン: '2' サービス: fastdfsトラッカー: ホスト...

MySQL 学習ノート ヘルプ ドキュメント

システムヘルプを表示help contents mysql> ヘルプコンテンツ; ヘルプ カテ...

VMWare を使用して Windows 上で Linux 環境を構築する手順 (画像とテキスト)

Mac を返却して以来、元のラップトップは使用されていません。このラップトップの構成は非常に良好で...

JSメモリ空間の詳細な説明

目次概要1. スタックとヒープ2. 変数オブジェクトと基本データ型3. 参照データ型とヒープメモリメ...

IE をフリーズさせる HTML コード

任意のテキスト エディターを開き、次のコードをコピーして、たとえば SomeFilename.htm...

JavaScript 配列の重複排除とフラット化関数の紹介

目次1. 配列の平坦化(配列の次元削減とも呼ばれる)方法1: 削減メソッドを使用する方法2: スタッ...

Docker を使用してエンタープライズレベルのカスタムイメージを構築する方法

序文退社前に、ある依頼を受けました。基本イメージ規格の変更により、最新の Docker イメージ規格...

mysql はインデックスを無効にしますか?

mysql の IN はインデックスを無効にしますか?しませんよ! 結果をご覧ください: mysq...

HTML 名、ID、クラス (フォーマット/アプリケーション シナリオ/機能) などの違いの紹介。

ページには多くのコントロール (要素またはタグ) があります。これらのタグをより便利に操作するには、...