ホバードロップダウンメニューを実装するためのネイティブ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 圧縮版のインストールチュートリアル(画像とテキスト付き)

推薦する

ユニークインデックスの S ロックと X ロックによる MySQL デッドロック ルーチンの理解

「初心者向けソースコードからの MySQL デッドロック問題の理解」では、MySQL ソースコードを...

Vueカスタムカプセル化ボタンコンポーネント

Vueボタンコンポーネントのカスタムカプセル化コードは参考用です。具体的な内容は次のとおりです。ボタ...

フレックスレイアウトとposition:absolute/fixedの競合の詳細な説明

以前、プロジェクトを開発しているときに、flex レイアウトと position:absolute/...

MySQL マスタースレーブレプリケーションの実践の詳細説明 - ログポイントに基づくレプリケーション

ログポイントベースのレプリケーション1. マスターデータベースとスレーブデータベースに専用のレプリケ...

Linux でショートカットアイコンを設定する方法

序文Linux でショートカットを作成すると、アプリケーションをより速く開くことができます。ここで、...

Vue は動的なプログレスバー効果を実現します

この記事では、動的なプログレスバー効果を実現するためのVueの具体的なコードを例として紹介します。具...

テーブルを作成するための MySQL SQL ステートメントの詳細な概要

mysql テーブル作成 SQL ステートメントMySQL テーブルを作成するための一般的な SQL...

IE6かどうかを判定する最短JS(IEの書き方)

ブラウザが IE のどのバージョンであるかを検出するためによく使用される JavaScript コー...

Vue.jsはコンポーネントを通じてアイコンを処理します

アイコン処理ソリューションこの記録の目的は、element-plus 以外のアイコンをコンポーネント...

入力できない無効な値はアクションレイヤーに渡すことができません

フォームを入力不可にしたい場合は、フォームを次のように設定します。コードをコピーコードは次のとおりで...

カレンダー効果を実現するための Bootstrap+JQuery

この記事では、カレンダー効果を実現するためのBootstrap+Jqueryの具体的なコードを参考ま...

バインドを使用してDNSサーバーを設定する方法

DNS(ドメインネームサーバー)は、ドメイン名とそれに対応する IP アドレスを変換するサーバーです...

MySQLは1億のテストデータを素早く挿入します

目次1. テーブルを作成する1.1 テストテーブルt_userを作成する1.2 一時テーブルの作成2...

CSSでカスタムフォント(font-face)を導入する方法の詳細な説明

なぜこれを使ったのか?それはポスターを作ることから始まりました。それは嵐の夜でした。 。 。さて、無...

JavaScript シミュレーション計算機

この記事では、JavaScriptシミュレーション計算機の具体的なコードを参考までに紹介します。具体...