JavaScriptはクリックトグル機能を実装します

JavaScriptはクリックトグル機能を実装します

この記事の例では、クリックして切り替える機能を実装するためのJavaScriptの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

実際のアプリケーションでは、要素をクリックしたり移動したりしてドロップダウン メニューやページをポップアップ表示することは、Web デザインでよく使われる操作です。

次に、メニューをクリックしてメニューを切り替える機能を実装し、js を使用してこの機能を実装する 3 つの方法を提供します。

1. HTMLを使用して基本構造を設計する

<本文>
<h2>マルチタブクリックスイッチ</h2>
<ul id="タブ">
 <li id="tab1" value="1">10元セット</li>
 <li id="tab2" value="2">30元セット</li>
 <li id="tab3" value="3">月額50元</li>
</ul>
<div id="コンテナ">
 <div id="content1">
 10 元パッケージの詳細: <br/>&nbsp;月額パッケージ内での通話は 100 分、超過分は 0.2 元/分</div>
 <div id="content2" スタイル="display: none">
 30 元パッケージの詳細: <br/>&nbsp; 月間パッケージ内で 300 分の通話、超過分は 1.5 元/分</div>
 <div id="content3" スタイル="display: none">
 月額 50 元のパッケージの詳細: <br/>&nbsp;月間通話無制限</div>
</div>
</本文>

2. CSSを使用して基本的なスタイルをデザインする

<スタイル>
 * {
  マージン: 0;
  パディング: 0;
 }
 #タブli {
  フロート: 左;
  リストスタイル: なし;
  幅: 80ピクセル;
  高さ: 40px;
  行の高さ: 40px;
  カーソル: ポインタ;
  テキスト配置: 中央;
 }
 #容器 {
  位置: 相対的;
 }
 #コンテンツ1、#コンテンツ2、#コンテンツ3 {
  幅: 300ピクセル;
  高さ: 100px;
  パディング: 30px;
  位置: 絶対;
  上: 40px;
  左: 0;
 }
 #タブ1、#コンテンツ1 {
  背景色: #ffcc00;
 }
 #タブ2、#コンテンツ2 {
  背景色: #ff00cc;
 }
 #タブ3、#コンテンツ3 {
  背景色: #00ccff;
 }
</スタイル>

3.jsはクリック切り替え機能を実装します

//ネイティブjs
 var コンテナ = document.querySelectorAll('#container>div')
 var event_li = document.querySelectorAll('#tab>li')
 var 現在のインデックス = 0
 for(var i=0;i<event_li.length;i++){
 イベント_li[i].num=i
 event_li[i].onclick=関数(){
  コンテナ[現在のインデックス].style.display='なし'
  var index_other = this.num
  コンテナ[index_other].style.display='ブロック'
  現在のインデックス=インデックス_その他
 }}
//jQuery 実装では、親要素をクリックすると、すべての子要素が display_none になり、クリック イベントのある要素の子要素が display_block に設定されます。
var $container = $('#container>div')
$('#tab>li').click(function(){
 $container.css('表示', 'なし')
 var インデックス = $(this).index()
 var index_other = $(this).val()-1
 $container[index_other].style.display = 'ブロック'
})
//jQuery 実装では、親要素をクリックすると、最初の要素の子要素は display_none になり、クリック イベントのある要素の子要素は display_block に設定されます。
現在のインデックス=0
$('#tab>li').click(function(){
 $($container[currentindex]).css('display', 'none')
 var インデックス = $(this).index()
 $container[index].style.display = 'ブロック'
 現在のインデックス=インデックス
})

4. まとめ

(1) ネイティブjsでもクリックして切り替える機能は実現できますが、jQueryを使う方が簡単です。構文はシンプルですが、機能は強力です。

(2)方法2と3を比較すると、方法2ではクリックイベントをトリガーした後、すべての子要素の表示モードをnoneに設定していることがわかります。明らかに、子要素の数が多い場合は、必要な変更の数もそれに応じて増加し、必然的に読み込みパフォーマンスに影響を与えます。したがって、方法3に最適化する必要があります。

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

以下もご興味があるかもしれません:
  • jsはクリックして切り替えるTABタグインスタンスを実装します
  • クリックスイッチTABタグの例を実現するシンプルな純粋なjs
  • Vue.js トグルボタンをクリックして例の内容を変更します
  • JSで実装したシンプルなタブクリック切り替え機能の例
  • ネイティブJSは画像の非表示と表示を実現し、JSは画像のクリックと切り替えを実現します
  • jQuery プラグイン jquery.LightBox.js は、クリックして画像を拡大したり、左クリックと右クリックを切り替える効果を実現します (デモ ソース コードのダウンロードあり)
  • チェックボックスをクリックして背景画像を切り替えるための js を使用した簡単な例
  • JavaScript で実装したシンプルなタブクリック切り替え機能の例
  • JavaScript でタブクリック切り替えのサンプルコードを実装する
  • JSは、水色のシンプルな垂直タブクリック切り替え効果を実現します

<<:  EclipseにTomcatサーバー設定を追加する方法

>>:  Windows で MySQL サービスを停止または削除できない問題の解決策

推薦する

MySQLのネストされたトランザクションで発生する問題

MySQL はネストされたトランザクションをサポートしていますが、それを実行する人は多くありません....

Mysql 中国語ソートルールの説明

MySQL を使用する際、フィールドをソートしたりクエリしたりすることがよくあります。通常は、中国語...

要素シャトルフレームのパフォーマンス最適化の実装

目次背景解決新しい質問高度な背景シャトル ボックスが大量のデータを処理すると、レンダリングされる D...

Vue での bimface の使用に関する詳細

目次1. Vue スキャフォールディングをインストールする2. プロジェクトを作成する3.1 プロジ...

node.jsのインストールとHbuilderXの設定の詳細な説明

npm インストールチュートリアル: 1. Node.jsインストールパッケージをダウンロードする公...

同じ日の最初の3つのデータを取得するためのMySQLタイムラインデータ

テーブルデータを作成する テーブル `praise_info` を作成します ( `id` bigi...

JavaScriptの詳細な説明 thisキーワード

目次1. はじめに2.これを理解する3. これは誰ですか? 4.矢印関数はさらに読む要約する1. は...

画像の半透明処理 画像と半透明の背景の実装のアイデアとコード

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

Dockerイメージをインポートおよびエクスポートする方法

この記事では、移行、バックアップ、アップグレードなどのシナリオで使用される Docker イメージの...

Vue でコンポーネントを一括インポート、登録、使用する方法

序文コンポーネントは、非常に頻繁に使用されるものです。多くの人は、コンポーネントを 1 つのファイル...

CSS を使用して 3 つのステップでショッピング モールのカード クーポンを作成する

今日は618日、主要なショッピングモールはすべてプロモーション活動を行っています。今日は、次のように...

Linux でバックグラウンドで実行中のプログラムを表示して終了する方法

1. .shファイルを実行する./sh ファイルを使用して直接実行することもできますが、現在のターミ...

Vueコンポーネント通信方法事例まとめ

目次1. 親コンポーネントが子コンポーネントに値を渡す(props) 2. サブコンポーネントは親コ...

jsネイティブウォーターフォールフロープラグイン制作

この記事では、jsネイティブウォーターフォールフロープラグインの具体的なコードを参考までに共有します...

Linux Tensorflow2.0のインストール問題を解決する

conda アップデート conda pip で tf-nightly-gpu-2.0-previ...