アコーディオン効果を実現するネイティブ js

アコーディオン効果を実現するネイティブ js

実際のWebページ開発でも、アコーディオンは頻繁に登場します。

簡単なアコーディオンを作ったのですが、トランジション効果が発揮されず、コンテンツリストが唐突に表示されるように感じました。効果画像は以下の通りです。

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

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
    <メタ文字セット="UTF-8">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
    <meta http-equiv="X-UA-compatible" content="ie=edge">
    <title>アコーディオン</title>
    <スタイル>
        体、
        ul {
            パディング: 0;
            マージン: 0;
        }

        li {
            リストスタイル: なし;
        }

        .nav {
            幅: 150ピクセル;
            高さ: 310px;
            上マージン: 30px;
            左マージン: 50px;
            フォントサイズ: 20px;
            境界線: 1px 実線 #ccc;
        }

        .nav>ul>li:n番目の子(2n+1) {
            背景色: cadetblue;
        }

        .nav>ul>li:n番目の子(2n+2) {
            高さ: 160px;
            表示: なし;
            遷移: すべて 1;
        }

        .nav>ul>#選択済み{
            背景色: rgb(46, 115, 117);
        }

        .nav>ul>li:n番目の子(2) {
            表示: ブロック;
        }
    </スタイル>
</head>

<本文>
    <div class="nav">
        <ul>
            <li id="selected">タイトル 1</li>
            <li>
                <ul>
                    <li>1</li>
                    <li>2</li>
                    <li>3</li>
                    <li>4</li>
                </ul>
            </li>
            <li>タイトル 2</li>
            <li>
                <ul>
                    <li>1</li>
                    <li>2</li>
                    <li>3</li>
                    <li>4</li>
                </ul>
            </li>
            <li>タイトル 3</li>
            <li>
                <ul>
                    <li>1</li>
                    <li>2</li>
                    <li>3</li>
                    <li>4</li>
                </ul>
            </li>
            <li>見出し 4</li>
            <li>
                <ul>
                    <li>1</li>
                    <li>2</li>
                    <li>3</li>
                    <li>4</li>
                </ul>
            </li>
            <li>タイトル 5</li>
            <li>
                <ul>
                    <li>1</li>
                    <li>2</li>
                    <li>3</li>
                    <li>4</li>
                </ul>
            </li>
            <li>タイトル 6</li>
            <li>
                <ul>
                    <li>1</li>
                    <li>2</li>
                    <li>3</li>
                    <li>4</li>
                </ul>
            </li>
        </ul>
    </div>
    <スクリプト>
        var title = document.querySelectorAll(".nav>ul>li:nth-child(2n+1)");
        (var i = 0; i < title.length; i++) {
            title[i].onmouseover = 関数 () {
                (var j = 0; j < title.length; j++) {
                    title[j].nextElementSibling.style.display = "なし";
                    タイトル[j].id = "";
                }
                this.id = "選択済み";
                this.nextElementSibling.style.display = "ブロック";
            }
        }
    </スクリプト>
</本文>

</html>

トランジション効果は、コード transition: all 1s; で追加されます。
でもうまくいかなかった、ちょっと疑問? !

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

以下もご興味があるかもしれません:
  • アコーディオン効果を実現する純粋なjsコード
  • ReactJS を使用して、タブページの切り替え、メニューバーの切り替え、アコーディオンの切り替え、プログレスバーの効果を実装します。
  • jsを使用してシンプルなアコーディオン効果を実現する
  • ネイティブ js で作成されたアコーディオン効果ナビゲーション メニュー
  • Vue.js アコーディオン メニュー コンポーネントの開発例
  • jsは折りたたみ可能で拡張可能なアコーディオンメニューの効果を実現します
  • アコーディオン効果を実現する純粋なjs
  • JSは画像のアコーディオン効果を実現します
  • 垂直アコーディオン効果を実現するネイティブJS
  • アコーディオン効果を実現する HTML5 js

<<:  MySQL 5.7.27 のダウンロード、インストール、設定に関する詳細なチュートリアル

>>:  Nginx Rewrite の使用シナリオとコード例の詳細な説明

推薦する

CSS (カスケーディング スタイル シート) の一般的な用語の概要

CSS を使用する場合は、DOCTYPE (ドキュメント タイプ定義) を記述することを忘れないでく...

jsでの位置計算を徹底的に理解するのに役立つ記事

目次導入スクロール要素.スクロール()要素.scrollHeight/scrollWidth要素.s...

MySQL 4G メモリ サーバー構成の最適化

会社のウェブサイトのアクセス数が増えてくると(1日10万PV以上)、当然MySQLがボトルネックにな...

ウェブページのエクスペリエンス: ウェブページのカラーマッチング

<br />ウェブページの色はウェブサイトのイメージを確立する鍵の一つですが、ネットユー...

MySQL ロック関連知識のまとめ

MySQL のロックロックは、並行環境におけるリソースの競合を解決する手段です。その中でも、楽観的並...

入力タグの名前と値の違い

type はブラウザでの入力と出力に使用されるコントロールです (たとえば、type="t...

Centos7 MySQL データベースのインストールと設定のチュートリアル

1. システム環境yum updateアップグレード後のシステムバージョンは[root@yl-web...

CSS を使用して画像の色を変更する 100 の方法 (収集する価値あり)

序文「画像処理というと、PhotoShop などの画像処理ツールを思い浮かべることが多いです。フロン...

CSS3 で作成された背景グラデーションアニメーション効果

成果を達成する 実装コードhtml <h1 class="text-light&qu...

echarts と vue.js を統合する際に発生するいくつかの問題の概要

序文現在、私は Beetlex のデータ分析プラットフォームに取り組んでいます。この製品の開発では、...

JavaScript関数におけるこのポイントの問題の詳細な説明

このキーワードどのオブジェクトが関数を呼び出しますか? また、関数内の this はどのオブジェクト...

Mysqlの同時パラメータ調整の詳細な説明

目次クエリキャッシュの最適化概要クエリプロセスクエリキャッシュ構成クエリキャッシュの無効化メモリ管理...

Node.js とブラウザのグローバル オブジェクトの違いの概要

Node.js では、.js ファイルは完全なスコープ (モジュール) です。したがって、var に...

Cronジョブを使用してCpanelでPHPを定期的に実行する方法

cpanel 管理バックエンドを開き、「詳細」オプションの下に「Clock Guardian Job...

JS はシンプルな todoList (メモ帳) 効果を実装します

メモ帳プログラムは、HTML + CSS + JavaScript の 3 つの主要なフロントエンド...