3 階層ナビゲーション メニューを実現するための js+css

3 階層ナビゲーション メニューを実現するための js+css

この記事の例では、3レベルのナビゲーションメニューを実装するためのjs + cssの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

CSS を使用してナビゲーション メニューのホバー イベントを実装するのは比較的簡単です。透明度を変更するだけです。メニューにグラデーション効果を持たせたい場合、残念ながら transition は display をサポートしていないため、不透明度を使用して同じ効果を実現します。

CSS で実装された完全なコードは次のとおりです。

<!DOCTYPE html>
<html>
 <ヘッド>
  <メタ文字セット="utf-8" />
  <title>第 3 レベルのナビゲーション メニュー</title>
 </head>
 <スタイル>
  *{
 マージン: 0;
 パディング: 0;
}
体{
 フォントサイズ: 16px;
 背景色:#EDEDED;
 フォントスタイル: 継承;
 色:#757576;
}
。主要{
 幅: 1050ピクセル;
 マージン: 0 自動;
}
.fl{
 フロート: 左;
}
.fr{
 フロート: 右;
}
{
 テキスト装飾: なし;
 アウトライン: なし;
 色:#757576;
}
ul、ol{
 リストスタイル: なし;
}
。クリア{ 
 クリア: 両方;
}
.clearfix{
 *ズーム:1;
}
li{
 フロート: 左;
 表示: インラインブロック;
 幅: 120ピクセル;
 高さ: 40px;
 テキスト配置: 中央;
 行の高さ: 40px;
}
li a:hover{
 色: 赤;
}
#初め {
 不透明度: 0;
}
#firstli{
 フロート: なし;
 位置: 相対的;
}
 li a:hover{
 色: 赤;
 遷移: すべて 0.5 秒;
}
:ホバー{
 遷移: すべて 2; 
}
#2番 {
 不透明度: 0;
 マージン: -40px 0 0 80px;
 パディング: 0px;
 位置: 絶対;
}
#nav_one:ホバー #first{
 不透明度:1;
 遷移: すべて 2;
}
#nav_two:ホバー #second{
 不透明度:1;
 遷移: すべて 2;
}
 </スタイル>
 
 <本文>
  <div class="nav main">
   <ul id="nav">
    <li id="nav_one"><a href="#" >レベル 1</a>
     <ul id="first">
      <li id="nav_two" class="nav_two">
       <a href="#" >第 2 レベル</a>
       <ul id="2番目">
        <li><a href="#" >レベル 3</a></li>
        <li><a href="#" >レベル 3</a></li>
        <li><a href="#" >レベル 3</a></li>
       </ul>
      </li>
      <li class="nav_two"><a href="#" >第 2 レベル</a></li>
      <li class="nav_two"><a href="#" >第 2 レベル</a></li>
     </ul>
    </li> 
    <li><a href="#" >レベル 1</a></li>
    <li><a href="#" >レベル 1</a></li>
    <li><a href="#" >レベル 1</a></li>
    <li><a href="#" >レベル 1</a></li>
   </ul>
 </div>  
 </本文>
</html>

js の実装は比較的面倒ですが、CSS でホバー効果を置き換えることも可能です。

<!--<スクリプト>
 window.onload = 関数(){
  var one = document.getElementById("nav_one");
  var frist = document.getElementById("frist");
  var second = document.getElementById("second");
   one.onmouseover = 関数(){
    first.style.opacity = "1";
    first.style.transition = "すべて 2";
    first.style.WebkitTransition = "すべて 2";
   }
   one.onmouseout = 関数(){
    first.style.opacity = "0";
    first.style.transition = "すべて 0.5 秒";
    first.style.WebkitTransition = "すべて 0.5 秒";
   }
  var two = document.getElementById("nav_two");
   2.onmouseover = 関数(){
    second.style.opacity = "1";
    second.style.transition = "すべて 2";
    second.style.WebkitTransition = "すべて 2";
   }
   2.onmouseout = 関数(){
    second.style.opacity = "0";
    second.style.transition = "すべて 0.5 秒";
    second.style.WebkitTransition = "すべて 0.5 秒";
   }
  }
</script>-->

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

以下もご興味があるかもしれません:
  • js 左 3 レベル メニュー ナビゲーション サンプル コード
  • JS でナビゲーション メニューにセカンダリ ドロップダウン メニューを実装する 3 つの方法
  • JSは、現在のメニューを選択した後にナビゲーションバーを強調表示する効果を実現します。
  • js制御のナビゲーションメニューのサンプルコード
  • 水平スクロールメニューナビゲーションを実現するjs
  • ネイティブ js で作成されたアコーディオン効果ナビゲーション メニュー
  • Flashに匹敵するJSナビゲーションメニュー
  • ナビゲーションドロップダウンメニューの効果を実現するネイティブJS
  • 複数オプション切り替えナビゲーションメニューを実現する js メソッド
  • jsで実装された比較的古典的で実用的なトリガー型ナビゲーションメニュー

<<:  MySQL マルチテーブル結合入門チュートリアル

>>:  Linux環境変数ファイルの簡単な紹介

推薦する

MySQL エラー「すべての派生テーブルには独自のエイリアスが必要です」の解決方法

MySQL は、マルチテーブルクエリを実行するときにエラーを報告します。 [SQL] SELECT ...

Vue3 setup() の高度な使用例の詳細な説明

目次1. オプションAPIと組み合わせAPIの違い2. セットアップを具体的にどのように使用するので...

Nginxでネットワーク分離を解決した実践記録を詳しく解説

必要最近、Node オンライン サービスを移行する必要があったため、2 つの新しいオンライン サーバ...

高同時実行シナリオにおける nginx 最適化の詳細な説明

日常の運用・保守作業では、nginx サービスが頻繁に使用され、nginx の高同時実行性によって生...

nginx の 2 つのモジュールの proxy_pass の違い

1. 1.ngx_stream_proxy_moduleモジュールのproxy_passディレクティ...

JavaScriptの詳細な説明 thisキーワード

目次1. はじめに2.これを理解する3. これは誰ですか? 4.矢印関数はさらに読む要約する1. は...

display または visibility を通じて HTML 要素を表示または非表示にする

場合によっては、特定の条件に基づいて Web ページ内の HTML 要素を表示するか非表示にするかを...

Centos7 で Java8 と MySQL をインストールしてデプロイする

通常、Java の学習とプロジェクトのデプロイはローカルで行われますが、実稼働環境は Linux 環...

MySQLでテーブルデータを削除する方法

MySQL でデータを削除する方法は 2 つあります。1 つは DELETE ステートメント、もう ...

ログインボックスのドラッグ効果を実現するためのJavascript

この記事では、ログインボックスのドラッグ効果を実現するためのJavascriptの具体的なコードを参...

検証コードケースのJavaScript実装

この記事では、検証コードの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...

HTML テーブルタグと関連する改行の問題の詳細な分析

テーブルとは何ですか?テーブルは、データのキャリアである HTML テーブルです。以下は比較的標準的...

継続的インテグレーションテストにおけるDocker Swarmの適用の詳細な説明

背景アジャイル モデルは広く使用されており、テストは特に重要です。新しいバージョンは頻繁にリリースす...

Vue2.x プロジェクトのパフォーマンス最適化のためのコード最適化の実装

目次1 v-ifとv-showの使用2. 計算と監視を区別する3 v-for トラバーサルでは、アイ...

PC/Pad/Phoneデバイスに自動的に適応するCSSウェブページレスポンシブレイアウト

序文最近は、PC、iPad、携帯電話、スマートウォッチ、スマートテレビなど、さまざまなデバイスが存在...