格納可能なセカンダリメニューを実装するための JavaScript

格納可能なセカンダリメニューを実装するための JavaScript

JavaScriptで格納可能なセカンダリメニューを実装するための具体的なコードは参考までに。具体的な内容は次のとおりです。

格納可能なセカンダリメニュー:

ケースの説明: 効果図は以下のとおりです。一度に開くことができるのは 1 つだけです。開くと、+ 記号が - に変わります。

HTMLコード

<!--プルリスト-->
<スタイル>
 
    li {
        /*li ドットをキャンセル*/
        リストスタイル: なし;
    }
 
    li span {
        /* span タグの背景画像を設定します (先頭に小さなプラス記号とマイナス記号、繰り返しなし、初期位置 0 0)*/
        背景: url(add.png) 繰り返しなし 左中央;
        左パディング: 20px;
    }
 
    /*開始スタイル*/
    li ul{
        高さ: 0;
        /*オーバーフローは非表示*/
        オーバーフロー: 非表示;
        /*トランジション効果を追加*/
        遷移: すべて 0.5 秒;
    }
    /*スタイルを展開*/
    。開ける{
        背景画像: url(minus.png);
    }
    .open+ul{
        高さ: 70px;
    }
 
 
</スタイル>
 
 
<ul class="tree">
    <li><span class="open">出席管理</span>
        <ul>
            <li>毎日の出席状況</li>
            <li>休暇申請</li>
            <li>残業出張</li>
        </ul>
    </li>
    <li><span>インフォメーションセンター</span>
        <ul>
            <li>毎日の出席状況</li>
            <li>休暇申請</li>
            <li>残業出張</li>
        </ul>
    </li>
    <li><span>コラボレーションオフィス</span>
        <ul>
            <li>毎日の出席状況</li>
            <li>休暇申請</li>
            <li>残業出張</li>
        </ul>
    </li>
</ul>
 
<script src="mJS.js"></script>

JavaScript コード

// プルアウトリスト // 実装のアイデア:
 
var spans = document.querySelectorAll(".tree span");
 
(var i = 0; i < spans.length; i++) の場合 {
    spans[i].onclick = 関数 () {
        // コンソールログ(これ);
        // 変更する要素スパンを検索 // クラスを変更、削除、または追加 -> 開く
        // 自分自身が開いているかどうかを確認し、開いている場合は削除します。
        // this -> イベントをトリガーした要素を指します if (this.className == "open") {
            // ある場合は削除してください。
            this.className = "";
        } それ以外 {
            // そうでない場合は、それを追加し、すでに開いている他のものを削除します。
            // open 属性の open (li) を検索します
            var openSpan = document.querySelector(".tree.open")
            (openSpan !== null)の場合{
                // コレクションが空でない場合は、その open 属性を削除します。 openSpan.className = "";
            }
            // 自分自身のオープン属性を設定します this.className = "open";
        }
 
 
    }
}

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

以下もご興味があるかもしれません:
  • JavaScript ドロップダウン メニュー実装コード
  • ユニバーサルセカンダリメニューコード (css+javascript)
  • シンプルなjsツリーメニュー
  • 3 段階のドロップダウン メニューの JS 実装コード
  • 日付ドロップダウンメニューの js 実装コード
  • JS リアルマルチレベルリンクドロップダウンメニュークラス、省、市、地区のリンクメニューを簡単に実現します。
  • jsを使用してシンプルな折りたたみと展開メニューメソッドを実現します
  • JavaScript は、州、市、地区の 3 段階のリンク ドロップダウン ボックス メニューを実現します。
  • Js クリック ポップアップ ドロップダウン メニュー効果の例
  • ドロップダウンメニューを表示または非表示にするJavaScript

<<:  ウェブページのドロップダウンリストとdivレイヤーのカバーの問題を選択する

>>:  CSSで背景ぼかしを設定する方法

推薦する

js を使用して 2 つの HTML ウィンドウ間で通信する方法

シナリオ: ページAがページBを開くと、ページBで操作した後、ページAは変更されたデータを同期する必...

Nginx の realip モジュールの使い方の基礎学習

序文nginx モジュールには、公式とサードパーティの 2 種類があります。nginx のインストー...

mysql8.0.11をインストールしてrootパスワードを変更し、navicat for mysqlに接続するアイデアの詳細な説明

1.1. ダウンロード:公式ウェブサイトから zip パッケージをダウンロードします。私は 64 ビ...

Node.js mysqlクライアントが認証プロトコルをサポートしていない問題を解決する

序文mysql モジュール (プロジェクト アドレスは https://github.com/mys...

Linux で Nginx ロード バランシングを使用して複数の Tomcat を構成する方法

Linux に nginx と複数の tomcat をインストールする方法はここでは紹介しません。不...

MySQL はどのようにしてデータの整合性を確保するのでしょうか?

オンライン ビジネスにとってデータの一貫性と整合性が重要であることは明らかです。データが失われないよ...

Centos7 に yum 経由で MySQL をインストールする方法

1. MySQLがインストールされているかどうかを確認する yum インストール済みリスト | gr...

nginxリバースプロキシを使用するときに長時間接続を維持する方法

・【シーン説明】 HTTP1.1 以降、HTTP プロトコルは永続的な接続 (長い接続とも呼ばれます...

CSS のマージンの崩壊問題を解決する方法

まず、マージン崩壊が発生する 3 つの状況を見てみましょう。 1. 隣接する 2 つのブロックレベル...

JavaScriptのプリコンパイルを見てみましょう(概要)

JSランニング三部作js実行コードは3つのステップに分かれています構文解析プリコンパイル解釈Jav...

MySQL マルチバージョン同時実行制御メカニズム (MVCC) ソースコードの詳細な説明

目次1. はじめに2. MVCC (マルチバージョン同時実行制御メカニズム) 2.1 繰り返し読み取...

Linux の Docker コンテナで bash を終了する 2 つの方法

bash を終了する場合は、次の 2 つのオプションがあります。最初のもの: Ctrl + d を押...

Vue はトークンの有効期限が切れると自動的にログインページにジャンプする機能を実装します

このプロジェクトは最近テストされ、テスターから、トークンの有効期限が切れたため、ルートが自動的にログ...

MySQL の連結で複数の一重引用符と三重引用符を使用する際の問題

文字列を動的に連結する場合、文字連結を使用することが多いです。次のような連結の引用符の意味がわかりま...