ホバードロップダウンメニューを実装するためのネイティブJS

ホバードロップダウンメニューを実装するためのネイティブJS

JS はホバー ドロップダウン メニューを実装します。これは、フロントエンドの面接で遭遇するシナリオの質問です。原則は、メニュー スタイルの display 属性の属性値を none=>block から変更することです。具体的な実装を以下に示します。次の部分に注目してください。

  • 各セクションにフロートを設定します。
  • セクションの親ボックスの継承可能なプロパティ、フォント関連のプロパティを設定します。
  • ホバーを設定する場合、セクションの親ボックスにホバーすると、子要素のヘッドの背景が変わります。`.head:hover` と記述して、ヘッドクラスに直接ホバーすることもできます。ただし、マウスを li の上に移動すると、ヘッドが元の外観に戻ってしまうという問題が発生するため、セクションにホバーを配置することをお勧めします。
  • ただし、メニュー自体は表示されないため、親ボックス セクションにマウスを移動することによってのみメニューを表示できます (ヘッドは親ボックスではないため、ヘッドにマウスを移動することはできません)。
<!DOCTYPE html>
<html lang="ja">
 
<ヘッド>
    <メタ文字セット="UTF-8">
    <meta http-equiv="X-UA-compatible" content="IE=edge">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
    <title>ホバードロップダウンメニュー</title>
    <スタイル>
 
        /* 必要に応じて、ワイルドカード、a、li の既存のスタイルを削除します*/
        
        * {
            マージン: 0;
            パディング: 0;
        }
        
        {
            テキスト装飾: なし;
            色: 黒;
        }
 
        /* ここでの li は幅を指定せずに既存のスタイルを削除するだけです */
        
        li {
            リストスタイル: なし;
        }
 
        /* 各セクションをアイテムとしてフレックスレイアウトする */
        
        。容器 {
            マージン: 50px 自動;
            幅: 40%;
            高さ: 40px;
            ディスプレイ: フレックス;
            /* 最初にスペース均等に表示*/
            コンテンツの均等配置: スペースを均等に;
            背景色: スカイブルー;
        }
 
        /* フローティングは各セクションでのみ実行する必要があります */
        /* セクションの「フォント サイズ、テキスト配置、行の高さ」を設定します => 継承可能なプロパティ*/
        
        。セクション {
            フロート: 左;
            フォントサイズ: 16px;
            行の高さ: 40px;
            テキスト配置: 中央;
        }
 
        /*ここではホバー時のヘッドのスタイルを指定します*/
        /* .head:hover と書くこともできます */
 
        .section:hover .head {
            色: 白;
            背景色: オレンジ;
        }
 
        /* 最初はメニュー全体が非表示で、スタイルが設定されています */
        
        .メニュー{
            表示: なし;
            背景色: 透明;
        }
 
        /* マウスオーバーするとメニューが表示されます。親ボックスにのみマウスオーバーできます*/
        
        .section:hover .menu {
            表示: ブロック;
        }
 
        /* ホバー時の li のスタイルを指定します*/
        
        .menu li:hover {
            背景色: オレンジ;
        }
    </スタイル>
</head>
 
<本文>
    <div class="コンテナ">
        <div class="section">
            <a href="#" class="head">論文を書く</a>
            <ul class="メニュー">
                <li>情報を検索する</li>
                <li>メモを取る</li>
                <li>再現する</li>
            </ul>
        </div>
        <div class="section">
            <a href="#" class="head">フロントエンドを学ぶ</a>
            <ul class="メニュー">
                <li>HTML</li>
                <li>CSS</li>
                <li>JavaScript</li>
                <li>リートコード</li>
            </ul>
        </div>
        <div class="section">
            <a href="#" class="head">リトルデイズ</a>
            <ul class="メニュー">
                <li>食べる</li>
                <li>睡眠</li>
                <li>豆をプレイ</li>
            </ul>
        </div>
    </div>
</本文>
 
</html>

最終的な効果は以下のようになります。

ヒント: クリックしてドロップダウン メニューを実装するという、似たような質問がもう 1 つあります。ここでの違いは、クリック イベントを追加し、それを JS で記述して、後で補足する必要があることです。 3 つのセクションを ul li の形式で記述することもできます。これにより、ネストされた 2 層の ul も実現でき、セマンティクスが向上し、読者の参照用に残されます。

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

以下もご興味があるかもしれません:
  • JavaScript ドロップダウン メニュー実装コード
  • css+js ドロップダウンメニュー
  • jsは選択ドロップダウンメニューのデフォルトの選択項目を動的に設定します
  • 3 段階のドロップダウン メニューの JS 実装コード
  • 日付ドロップダウンメニューの js 実装コード
  • JS リアルマルチレベルリンクドロップダウンメニュークラス、省、市、地区のリンクメニューを簡単に実現します。
  • Js クリック ポップアップ ドロップダウン メニュー効果の例
  • Javascript は Sina ゲーム チャンネルを模倣し、マウスをホバーするとサブメニュー効果を表示します
  • JavaScript マウスホバーイベントの使用状況分析
  • マウスをホバーしたときに別の要素を表示する CSS または JS

<<:  UbuntuのVimにNERDTreeプラグインをインストールする詳細な手順

>>:  MySQL 8.0.20 圧縮版のインストールチュートリアル(画像とテキスト付き)

ブログ    

推薦する

js Promise同時制御メソッド

目次質問背景アイデアと実装質問次のように、同時実行 Promise の数を制御するメソッドを記述する...

LeetCode の SQL 実装 (177. 給与が N 番目に高い)

[LeetCode] 177. 最も高い給与従業員テーブルからn番目に高い給与を取得する SQL ...

Windows 7 の mysql6.x で中国語の文字化けが発生する問題に対する完璧な解決策

1. コマンドラインでMySQLサービスを停止します: net stop mysql stop my...

CSS変数を使用してダークモードを実装するためのサンプルコード

最近、WeChatはAppleによってダークモードの開発を強制されました。ますます多くのウェブサイト...

Linux システムの最適化 (カーネルの最適化) に関するいくつかの提案

スワップを無効にするサーバーがデータベース サービスまたはメッセージ ミドルウェア サービスを実行し...

背景属性の8つの属性値の詳細解説(面接の質問)

CSSの背景プロパティの値背景色背景画像背景繰り返し背景位置背景添付複合プロパティ: 背景: ba...

史上最も便利な Zookeeper サーバーの構築方法 (推奨)

ZooKeeperとはZooKeeper は、分散アプリケーションに効率的で可用性の高い分散調整サ...

MySQL の遅いクエリ操作の例の分析 [有効化、テスト、確認など]

この記事では、MySQL のスロー クエリ操作について例を挙げて説明します。ご参考までに、詳細は以下...

MySQL 全文あいまい検索 MATCH AGAINST メソッドの例

MySQL 4.x 以降では、全文検索 MATCH ... AGAINST モード (大文字と小文字...

MySQL グリーンバージョン設定コードと 1067 エラーの詳細

MySQL グリーンバージョン設定コードと 1067 エラーMySQL エンコーディングを表示 &#...

macOS での MySQL 8.0.17 のインストールと簡単な設定チュートリアル

私が書いた内容が理解できない場合は、インターネット上に理解できるチュートリアルがない可能性があります...

よく使われるHTMLタグのインライン要素とブロックレベル要素の詳細な説明

ブロック要素HTMLタグ分類の詳細* 住所 - 住所* blockquote - ブロック引用* c...

HTML ヘッド構造

以下では、よく使われるヘッド構造と、各タグや要素の意味や使用シーンを紹介します(この記事は、Yisi...

mysqlのデータディレクトリ内のファイルを直接コピーしてデータを復元する実装

mysqlはデータディレクトリ内のファイルをコピーしてデータを復元します背景: MySQL がクラッ...

dockerでpdflatex環境を設定する方法

技術的背景Latex は文書作成、特に記事作成には欠かせないツールであり、必須のテキスト組版ツールで...