フロントエンド開発者が必ず知っておくべきケースとして、タブバーの切り替え効果があります。タブバー自体がクリックによって切り替えられるだけでなく、タブ自体がその下のコンテンツセクションの表示も決定します。 操作効果表示:上の図に示すように、実際には、上のタブ バーをクリックするだけで、タブ バー自体のスタイルが変更され、その下のコンテンツ ブロックにも対応するコンテンツが表示されます。このような効果や機能はフロントエンドで広く利用されているため、フロントエンドには必須のものだと言えます。では、早速コードを紹介します。 (ここでは 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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Linux CentOS 6.5 のアンインストール、tar、および MySQL のインストールチュートリアル
>>: MySQL マスターとスレーブの不整合とその解決策の詳細な説明
ページ上の画像を強調表示することは非常に一般的です。ここでは、jQuery を使用して画像を強調表示...
簡単に言うと、今日は Gitlab-CI を使用してリモート サーバーに自動的にデプロイする方法につ...
getElementByIdはオブジェクトを取得できませんブラウザがドキュメントを解析するときにはシ...
1. refがコピーされ、ビューが更新されますrefを使用してオブジェクトのプロパティ値をレスポンシ...
この記事では、主に、円形のダイナミックな光る特殊効果アニメーションを実現するための純粋な CSS3 ...
序文: MySQL 8.0 では高速な列追加がサポートされ、数秒で大きなテーブルにフィールドを追加で...
問題の説明:構造:テストには2つのフィールドがあります。これらは col1 と col2 で、どちら...
1. 概要ネットでいろいろ検索してみたところ、Linux システム向けではなく、現在の新しいバージ...
会社から、負荷を実装するためにnginxをベースにFordプロジェクトのWebServiceサーバー...
Mac 用 MySQL をダウンロード: https://downloads.mysql.com/a...
1. Dockerの紹介Docker は Linux オペレーティングシステムの一部の機能をベースに...
MySQL のデータ型は datetime です。データベースに保存されているデータは 2015-0...
目次導入始めるインストール①直接ダウンロードする方法②CND法③NPM方式④糸法NPMインストールの...
まず、変更イベントは 1 つだけです。 changelevel() //値を選択選択を変更して行の値...
MySQL の行から列への操作いわゆる行から列への操作は、テーブルの行情報を列情報に変換することです...