Menu
Coddy logo textTech

ドロップダウンメニュー

CoddyのHTMLジャーニー「JavaScriptの実践」セクションの一部。レッスン 15/27。

Dropdownメニューは、操作すると追加のオプションを表示するUIコンポーネントです。コンテンツを整理しながら多くのスペースを取らずに済むため、ナビゲーションでよく使用されます。

まず、基本的なドロップダウンのHTML構造を作成しましょう:

<div class="dropdown">
  <button class="dropdown-toggle">Menu</button>
  <div class="dropdown-menu">
    <a href="#">Option 1</a>
    <a href="#">Option 2</a>
    <a href="#">Option 3</a>
  </div>
</div>

それでは、dropdown の表示/非表示を切り替える JavaScript を追加しましょう:

// Get the dropdown toggle button
const dropdownToggle = document.querySelector('.dropdown-toggle');

// Get the dropdown menu
const dropdownMenu = document.querySelector('.dropdown-menu');

// Add click event listener to the toggle button
dropdownToggle.addEventListener('click', function() {
  // Toggle the 'show' class on the dropdown menu
  dropdownMenu.classList.toggle('show');
});

最後に、dropdown menu を非表示/表示にする基本的な CSS を追加します:

.dropdown-menu {
  display: none;
}

.dropdown-menu.show {
  display: block;
}

「Menu」buttonをclickすると、dropdown menuが表示されます。もう一度clickすると、menuが非表示になります。

challenge icon

チャレンジ

簡単

ボタンがクリックされたときに表示・非表示が切り替わるドロップダウンメニューを作成します。

手順:

  1. HTMLの場合:
    • クリックされたときにtoggleDropdownという名前の関数を呼び出すonclick属性をbuttonに追加します
  2. JavaScriptの場合:
    • toggleDropdownという名前の関数を作成します
    • 関数内で、IDが「myDropdown」の要素の「show」classを切り替えます

自分で試してみよう

<!DOCTYPE html>
<html>
<head>
  <title>Save the Forests</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <header>
    <h1>Save the Forests</h1>
    <p>Even planting one or two trees makes a difference.</p>
  </header>

  <div class="dropdown">
    <button class="dropbtn">Learn More ▼</button>
    <div id="myDropdown" class="dropdown-content">
      <a href="#">Why forests matter</a>
      <a href="#">How to grow a tree</a>
      <a href="#">Community projects</a>
    </div>
  </div>

  <main>
    <section>
      <h2>Why Trees Are Important</h2>
      <p>
        Forests clean our air, give us oxygen, and are home to countless animals.  
        Each tree you plant helps fight climate change and supports life on Earth.
      </p>
    </section>
    <section>
      <h2> Start Small</h2>
      <p>
        Don’t wait for a big change. Start with just one or two trees in your yard or community.  
        Your small action inspires others!
      </p>
    </section>
  </main>

  <footer>
    <p> Together we can make the planet greener.</p>
  </footer>

  <script src="script.js"></script>
</body>
</html>
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

JavaScriptの実践のすべてのレッスン

自分で練習してみよう: Webプレイグラウンド