JavaScript でタブバーの切り替え効果を実装する

JavaScript でタブバーの切り替え効果を実装する

フロントエンド開発者が必ず知っておくべきケースとして、タブバーの切り替え効果があります。タブバー自体がクリックによって切り替えられるだけでなく、タブ自体がその下のコンテンツセクションの表示も決定します。

操作効果表示:

上の図に示すように、実際には、上のタブ バーをクリックするだけで、タブ バー自体のスタイルが変更され、その下のコンテンツ ブロックにも対応するコンテンツが表示されます。このような効果や機能はフロントエンドで広く利用されているため、フロントエンドには必須のものだと言えます。では、早速コードを紹介します。

(ここでは CSS スタイル コードを投稿しません。必要に応じて設定し、フロート レイアウトを使用してください)

HTML の構造:

<div class="tab">
        <div class="tab_list">
            <ul>
                <li class="current">製品紹介</li><!-- 最初の li はデフォルトで選択されており、current は赤い背景と白いテキストのスタイルを決定します -->
                <li>仕様とパッケージ</li>
                <li>アフターセールス保証</li>
                <li>製品レビュー (50,000)</li>
                <li>モバイル コミュニティ</li>
            </ul>
        </div>
        <div class="tab_con">
            <div class="item" style="display: block;"><!-- すべてのアイテムの表示値が none であるため、このアイテムはデフォルトで表示されます -->
                製品紹介モジュールコンテンツ</div>
            <div class="item">
                仕様とパッケージモジュールの内容</div>
            <div class="item">
                アフター保証モジュールコンテンツ</div>
            <div class="item">
                製品レビュー(50000)モジュールコンテンツ</div>
            <div class="item">
                モバイル コミュニティ モジュール コンテンツ</div>
 
        </div>
</div>

JS コードは次のとおりです。

<スクリプト>
        // ビジネス要件: タブ バーをクリックします。クリックされたタブ バーはスタイルが異なり、コンテンツを変更する効果を実現するには、その下の div も切り替える必要があります。var tab_list = document.querySelector('.tab_list');
        var lis = tab_list.querySelectorAll('li');
        var タブ = document.querySelectorAll('.item');
        (var i = 0; i < lis.length; i++) の場合 {
            lis[i].setAttribute('data-index', i); // 各 li に data-index カスタム属性を追加します。値は lis 内の独自の添え字です。この値により、現在クリックしている li を判別し、後で対応する div の表示値を変更するのに役立ちます。lis[i].onclick = function () {
                // 1. 最初のステップは、排他的なアイデアを使用して、クリックしたユーザーにクラス属性を割り当てることです。クリックされていない他の項目のクラス値は空のままにしておく必要があることに注意してください。これは、他の人を殺して自分だけを残すという排他的なアイデアです for (var i = 0; i <lis.length; i++) {
                    lis[i].className = ''; // ループを使用して全員(自分自身を含む)のクラス名を空にします}
                // 次に、クラス名を自分用に修正して、自分に任せます this.className = 'current'; // 現在のクラス名の CSS スタイルが記述されています // 次に、上記のタブ バー スタイルを処理する必要があります。 2 番目のステップは、クリックされたものに対応する従属 div を表示し、クリックされていない他の div を非表示にすることです。 ここでは、主に、まずユーザーがクリックしたものを把握し、次にオブジェクト div の表示をブロックするように設定する必要があります。それを実行するには、まだ排他的な思考を使用する必要があります // ステップ 2: クリックに応じて div の表示属性値を変更します var index = this.getAttribute('index'); // 現在クリックされている li のインデックスを取得します
                for (var i = 0; i < lis.length; i++) { // ループを使用して各項目の表示をnoneに設定し、すべての項目を終了します。tabs[i].style.display = 'none';
                }
                // タブで、li のインデックスに対応する項目をロックし、その表示値をブロックに変更して、私だけを残します。tabs[index].style.display = 'block';
            }
        }
</スクリプト>

実装の手順とアイデアはあります(JSコードで詳細な分析が行われています)。最初に、LIタグのスタイルが変更されますsはテキストのコンテンツを保持するために配置されますが、divのテキストがLIタグで変更されることを認識しますインデックスの値、ユーザーがクリックしたLIを知ることができるので、表示するDivを決定できます。 (理解を深めるために、コードを読んでコメントと組み合わせることをお勧めします)

注:ここで「排他的なアイデア」についてお話しします。つまり、リストやテーブルなどの要素オブジェクトは、一般的に均一に取得され、配列に格納されます。現在選択されている要素と他の選択されていない要素との「違い」を制御したい場合、多くの場合、「排他的なアイデア」を設計します。これは主に 2 つのステップで実装されます。1. ループを使用して、これらすべての要素 (選択された要素を含む) をトラバースします。このステップの主な目的は、すべての要素を「同じ」にして、違いがないようにしてから、選択した要素 (つまり、自分自身を残す) に必要なスタイルや機能を追加することです。これら 2 つのステップを組み合わせることで、選択された人を「異なる」ものにする効果が得られます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • シンプルなタブバー切り替えケースを実現するJavaScript
  • シンプルなタブバー切り替えコンテンツバーを実装するJavaScript
  • JavaScript TABバー切り替え効果の例
  • タブバーの切り替え効果を実現する js
  • タブバーの切り替え効果を実現する JavaScript
  • js タブバー切り替えコード例の分析
  • タブバーの切り替え効果を実現するJavaScript

<<:  Linux CentOS 6.5 のアンインストール、tar、および MySQL のインストールチュートリアル

>>:  MySQL マスターとスレーブの不整合とその解決策の詳細な説明

推薦する

nginx ロケーション優先度の詳細な説明

場所表現タイプ~ は大文字と小文字を区別して通常の一致を実行することを示します~*は大文字と小文字を...

MySQLとOracleの違いを簡単に説明してください

1. Oracle は大規模データベースですが、MySQL は小規模から中規模のデータベースです。O...

MySQL 8.0.16 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.16圧縮パッケージのインストールと設定方法を参考までに紹介します。...

TypeScript ジェネリックパラメータのデフォルト型と新しい厳密なコンパイルオプション

目次概要コンポーネントクラスの型定義を作成するジェネリック型を使用してPropsとStateを定義す...

CentOS7 環境での DHCP 設定チュートリアル

目次CentOS7環境での設定コマンド手順1. DHCP設定ファイルを設定する2. グローバル構成を...

HTML タグ マーキーを使用してスクロール効果を実現する簡単な方法 (必読)

ページの自動スクロール効果は JavaScript で実現できますが、今日偶然、JS 制御なしでさま...

Windows での Apache+Tomcat7 負荷分散構成方法の詳細な説明

準備Windows Server 2008 R2 Enterprise (2.40GH、8GB、64...

MySQL データベースの最適化: インデックスの実装原則と使用状況の分析

この記事では、例を使用して、MySQL データベースの最適化のためのインデックス実装の原則と使用方法...

CentOS 6.8 での Hadoop 3.1.1 完全分散インストール ガイド (推奨)

上記:このドキュメントは、3 台の仮想マシンが相互に ping を実行できること、ファイアウォールが...

Vue が値を返してフォームを動的に生成し、データを送信する仕組みの詳細な説明

目次解決された主な問題1. バックエンドから返され、バックエンドに送信されるデータは、次の形式になり...

知っておくべきHTML最適化テクニック

Web ページのパフォーマンスを向上させるために、多くの開発者は、JavaScript、画像の最適化...

Vue+Echart 棒グラフで疫病データ統計を実現

目次1. まずプロジェクトにechartsをインストールします2. echartsに縦棒グラフテンプ...

Linux での NTP サーバー設定の詳細な手順

目次1. 環境設定1.NTPサーバー2. ビジネスサーバー2. NTPサーバーの設定1. chron...

MYSQLは継続サインイン機能を実装しており、サインイン後1日経過すると最初から開始します(SQL文)

1. テストテーブルを作成する テーブル `testsign` を作成します ( `userid`...

クリックして認証コードと認証を切り替えるJavaScript

この記事では、クリックして切り替える認証コードと認証を実装するためのJavaScriptの具体的なコ...