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

推薦する

MySQL 8.0.12 のインストールと環境変数の設定チュートリアル (Win10 の場合)

Windows 10 プラットフォームでの MySQL のインストール、構成、起動、ログイン、環境...

Linux でユーザー アカウントをロックおよびロック解除する 3 つの方法

組織内で何らかのパスワード ポリシーがすでに実装されている場合は、この記事を読む必要はありません。た...

Vue命令の実装原理の分析

目次1. 基本的な使い方2. 指示の動作原理2.1. 初期化2.2 テンプレートのコンパイル2.3....

VMware15/16 VMwareのロックを解除してMacOSをインストールする詳細な手順

VMware バージョン: VMware-workstation-full-16 VMware バー...

Web ページのソース ファイルを表示できない場合はどうすればよいですか?

Q: Outlook または IE のどちらを使用している場合でも、マウスを右クリックすると、ポッ...

jQueryは検証コード送信のコントロールボタンを無効にする機能を実装します

必要な効果: 確認コードを送信するためにクリックした後、ボタンは無効になり、5 秒後に無効解除されま...

MySQLでカーソルを宣言する方法

MySQL でカーソルを宣言する方法: 1. 変数とカーソルを宣言する 結果をvarchar(300...

Centos7.3 Nginx をインストールして展開し、https を設定する方法

設置環境1. gccのインストールnginxをインストールするには、まず公式サイトからダウンロードし...

HTML 縦列表示テキストを使用してテキストを縦列で表示します

コードをコピーコードは次のとおりです。 <span style='display:bl...

将来人気が出るであろういくつかのナビゲーション方向

<br />今は情報爆発の時代であるだけでなく、サービス爆発の時代でもあります。それはす...

CSS でより美しいリンクプロンプト効果をカスタマイズする方法

提案: コードをできるだけ手書きすると、学習の効率と深さを効果的に向上できます。デフォルトでは、&l...

JavaScript データ プロキシとイベントの詳細な分析

目次データブローカーとイベントObject.defineProperty メソッドのレビューデータブ...

count(1)、count(*)、count(列名)の実行の違いの詳細な説明

実施効果: 1. count(1) と count(*)テーブル内のデータ量が多い場合、テーブルを分...

Tomcat でよく使われるフィルターの詳細な説明

目次1. クロスドメインフィルタ CorsFilter 1.1 設定例1.2 パラメータの説明2. ...

Linux ユーザーとグループのコマンド例分析 [切り替え、ユーザーの追加、権限制御など]

この記事では、Linux のユーザーおよびグループのコマンドについて例を挙げて説明します。ご参考まで...