JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

CSSとJavaScriptでレスポンシブな下部ナビゲーションメニューを作成する方法

スマートフォンやタブレットなど画面の小さいデバイスでは、画面下部に固定表示されるナビゲーションメニューがユーザー体験を大きく向上させます。この記事では、CSSとJavaScriptを組み合わせて、ブラウザの幅に応じて表示が自動的に切り替わるレスポンシブな下部ナビゲーションメニューを作成する方法を、実際のコード例とともに分かりやすく解説します。

実装のポイント

このナビゲーションメニューは、主に次の3つの技術要素で成り立っています。

  • position: fixedによる下部固定:nav要素に「position: fixed」と「bottom: 0」を指定することで、ページをスクロールしてもメニューが常に画面下部に表示されます。
  • メディアクエリによるレスポンシブ対応:画面幅が600px以下になると、主要なリンクを非表示にして、代わりにハンバーガーアイコン(☰)を表示します。
  • JavaScriptによる開閉制御:ハンバーガーアイコンがクリックされると、nav要素のクラス名を追加・削除して、メニューの展開と折りたたみを切り替えます。

コード例

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
   margin: 0px;
   margin-top: 10px;
   padding: 0px;
}
nav {
   position: fixed;
   bottom: 0;
   width: 100%;
   background-color: rgb(39, 39, 39);
   overflow: auto;
   height: auto;
}
.links {
   display: inline-block;
   text-align: center;
   padding: 14px;
   color: rgb(178, 137, 253);
   text-decoration: none;
   font-size: 17px;
}
.links:hover {
   background-color: rgb(100, 100, 100);
}
.selected {
   background-color: rgb(0, 18, 43);
}
.hamburger {
   color: white;
   font-weight: bolder;
   display: none;
}
@media screen and (max-width: 600px) {
nav a:not(:first-child) {
   display: none;
}
nav a.hamburger {
   float: right;
   display: block;
   padding: 12px;
}
nav.openNav a.hamburger {
   position: absolute;
   right: 0;
   bottom: 0;
}
nav.openNav a {
   float: none;
   display: block;
   text-align: center;
}
}
</style>
</head>
<body>
<nav class="bottomNav">
<a class="links selected" href="#">Home</a>
<a class="links" href="#">Login</a>
<a class="links" href="#">Register</a>
<a class="links" href="#">Contact Us</a>
<a class="links" href="#">More Info</a>
<a class="hamburger">☰</a>
</nav>
<div>
<h1>Bottom navigation menu</h1>
</div>
<script>
function toggleNav() {
   var x = document.getElementsByTagName("nav")[0];
   if (x.className === "bottomNav") {
      x.className += " openNav";
   } else {
      x.className = "bottomNav";
   }
}
document.querySelector(".hamburger").addEventListener("click", toggleNav);
</script>
</body>
</html>

出力結果

上記のコードをブラウザで実行すると、画面下部にダークグレーのナビゲーションバーが表示されます。

CSSとJavaScriptでレスポンシブな下部ナビゲーションメニューを作成する方法

ブラウザの幅を600px以下に狭めると、リンクが折りたたまれ、右端にハンバーガーアイコン(☰)だけが表示されます。

CSSとJavaScriptでレスポンシブな下部ナビゲーションメニューを作成する方法

ハンバーガーアイコンをクリックすると、非表示になっていたメニューリンクが縦方向に展開されます。もう一度クリックすると、メニューは元の状態に戻ります。

CSSとJavaScriptでレスポンシブな下部ナビゲーションメニューを作成する方法

  1. CSSとJavaScriptで作る!レスポンシブスライドショーの実装方法を徹底解説

    CSSとJavaScriptを組み合わせることで、画像を切り替えて表示できるレスポンシブなスライドショーを簡単に実装できます。本記事では、「前へ・次へ」のナビゲーションボタンとドットインジケーター付きのスライドショーを、実際のコード例とともにわかりやすく解説します。 実装例:完全なコード 以下は、CSSとJavaScriptを使用してレスポンシブスライドショーを作成するサンプルコードです。そのままHTMLファイルに保存すれば、すぐに動作を確認できます。 <!DOCTYPE html> <html> <head> <meta name="v

  2. HTMLとCSSでログインフォームを内蔵したレスポンシブナビゲーションメニューを作成する方法

    Webサイトのナビゲーションバーにログインフォームを組み込みたいケースは多くあります。HTMLとCSSだけでも、画面幅に応じてレイアウトが自動的に切り替わるレスポンシブなナビゲーションメニューを作成できます。この記事では、ナビゲーションリンクとユーザー名・パスワード入力欄を1つのバーに配置し、画面が狭くなると縦積みレイアウトに変化する実装例を紹介します。コード例<!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport content=wi