アコーディオン効果を実現するネイティブ 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 の使用シナリオとコード例の詳細な説明

推薦する

Linuxでスクリーンショットを撮って編集するための最高のツール

メインのオペレーティング システムを Windows から Ubuntu に切り替えたとき、最初に考...

SSL を実装するために nginx を設定する方法の例

環境説明サーバーシステム: Ubuntu 18.04 64ビットnginx: 1.14この記事では主...

MySQL sql_mode の使用に関する詳細な説明

目次序文sql_mode の説明最も重要なオプションすべてのオプション要約する序文前回の記事「MyS...

クエリプロファイラを使用して MySQL ステートメントの実行時間を表示する方法

前回の記事では、MySQL ステートメントの実行時間をチェックする 2 つの方法を紹介しました。今日...

docker-compose.yml ファイル内の一般的なテンプレート コマンドの詳細な説明

注意: docker-compose.yml ファイルを書き込むときは、すべてのコロン (:) とダ...

MySQLシリーズのMariaDBサーバーのインストール

目次チュートリアルシリーズ1. yumパッケージマネージャーを使用してMariaDBサーバーをインス...

MySQLはPartition関数を使用して水平分割戦略を実装します。

目次1件のレビュー2 水平分割の5つの戦略2.1 ハッシュ2.2 範囲2.3. キー2.4. リスト...

水平ヒストグラムを作成するための MySQL ソリューション

序文ヒストグラムは、RDBMS によって提供される基本的な統計情報です。最も一般的に使用されるのは、...

CSS3 のカラー値 RGBA とグラデーションカラーの使用方法の紹介

CSS3以前は、グラデーション画像は背景画像としてのみ使用できました。 CSS3 のグラデーション構...

複数の条件を持つ MySQL クエリ メソッド

複数の条件を持つ MySQL クエリ環境: MySQL 5.7 where ステートメントに複数の ...

期間限定フラッシュセール機能を実現するJavaScriptタイマー

この記事では、期間限定フラッシュセール機能を実装するためのJavaScriptの具体的なコードを参考...

Dockerが正常に起動しない原因と解決策を詳しく解説

1. Docker 起動時の異常なパフォーマンス: 1. ステータスが繰り返し再起動している場合は、...

入力要素 [type="file"] を使用する場合のスタイルのカスタマイズとブラウザの互換性の問題に関する議論

この2日間、Baixing.comの筆記試験問題を解いているときに、このような問題に遭遇しました。H...

検索履歴を実装するjQueryプラグイン

毎日jQueryプラグイン - 検索履歴を作成するためのものです。参考までに、具体的な内容は次のとお...

メタタグにおける http-equiv 属性の使用の概要

metaはhtml言語のhead領域にある補助タグです。おそらく、これらのコードは不要だと思うかもし...