ドロップダウンメニューを表示するトグルスイッチを作る方法【HTML/CSS/JavaScript・サンプルコード付き】

トグルスイッチ

ドロップダウンメニューを表示するトグルスイッチを作る方法

ドロップダウンメニューを表示するトグルスイッチを作る方法を紹介します。このサンプルでは、トグルスイッチをONにするとメニューが展開され、OFFに戻すとメニューを閉じる動作を実装します。ボタンではなくトグルスイッチで表示状態を切り替えられるため、現在の状態をひと目で確認しながら操作できます。

管理画面の表示切り替え、設定画面の詳細メニュー、会員サイトのオプション選択、ECサイトの絞り込みメニューなど、必要な項目だけを表示したい場面で活用できます。トグルスイッチとドロップダウンメニューを連動させることで、シンプルで分かりやすいUIを実現できます。

タイトル、説明文、トグルスイッチのラベル、メニュー項目はHTMLから変更できます。CSSでは配色、余白、角丸、枠線、文字サイズ、ホバー時の色などを自由に調整でき、JavaScriptではトグルスイッチとドロップダウンメニューの表示・非表示を制御しています。レスポンシブにも対応しているため、スマートフォン・タブレット・PCで利用できます。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

デモ

ドロップダウンメニュー

トグルスイッチをONにするとメニューが表示されます。

メニューを表示する

トグルスイッチを切り替えるとドロップダウンメニューの表示・非表示を確認できます。

コードをコピーして使おう!

<!DOCTYPE html>
<html lang="ja">
<head>

  <!-- 文字コード -->
  <meta charset="UTF-8">

  <!-- スマートフォン対応 -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- ページタイトル -->
  <title>ドロップダウンメニューを表示するトグルスイッチ</title>

  <!-- CSSファイル -->
  <link rel="stylesheet" href="style.css">

</head>
<body>

  <!-- トグルスイッチとメニュー全体 -->
  <div class="toggle-dropdown_wrap">

    <!-- タイトル -->
    <div class="toggle-dropdown_title">
      ドロップダウンメニュー
    </div>

    <!-- 説明文 -->
    <p class="toggle-dropdown_text">
      トグルスイッチをONにするとメニューが表示されます。
    </p>

    <!-- メニュー表示設定 -->
    <div class="toggle-dropdown_setting">

      <!-- 設定項目名 -->
      <label
        class="toggle-dropdown_label"
        for="toggle-dropdown-input">
        メニューを表示する
      </label>

      <!-- トグルスイッチ操作部分 -->
      <div class="toggle-dropdown_control">

        <!-- 元のチェックボックス -->
        <input
          id="toggle-dropdown-input"
          class="toggle-dropdown_input"
          type="checkbox"
          aria-controls="toggle-dropdown-menu"
          aria-expanded="false">

        <!-- トグルスイッチ本体 -->
        <label
          class="toggle-dropdown_switch"
          for="toggle-dropdown-input"
          aria-label="ドロップダウンメニューの表示を切り替える">
        </label>

      </div>

    </div>

    <!-- ドロップダウンメニュー -->
    <nav
      class="toggle-dropdown_menu"
      id="toggle-dropdown-menu"
      aria-label="ドロップダウンメニュー"
      aria-hidden="true">

      <!-- メニュー項目 -->
      <a href="#" class="toggle-dropdown_link">
        ホーム
      </a>

      <a href="#" class="toggle-dropdown_link">
        サービス
      </a>

      <a href="#" class="toggle-dropdown_link">
        お知らせ
      </a>

      <a href="#" class="toggle-dropdown_link">
        お問い合わせ
      </a>

    </nav>

  </div>

  <!-- JavaScriptファイル -->
  <script src="script.js"></script>

</body>
</html>
コードをコピーする場合 使用するコードのタブを選び、「このタブをコピー」をクリックすると、現在表示中のコードをコピーできます。
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLではトグルスイッチとドロップダウンメニューを配置し、CSSではスイッチやメニューのデザインを設定します。JavaScriptではトグルスイッチのON・OFF状態を監視し、ドロップダウンメニューの表示・非表示を切り替えます。シンプルな構成のため、初心者でも仕組みを理解しながら導入できます。

sample/
├── index.html
├── style.css
└── script.js

各ファイルの役割
index.htmlはトグルスイッチとドロップダウンメニューを配置するファイルです。タイトル、説明文、メニュー名、メニュー項目の内容を変更できます。

style.cssはトグルスイッチ、メニュー、余白、背景色、文字色、角丸、ホバー時の見た目などを設定するファイルです。用途に合わせてデザインを自由に変更できます。

script.jsはトグルスイッチの状態を取得し、ドロップダウンメニューを表示・非表示へ切り替える処理を行います。また、aria属性も更新し、表示状態を管理します。

設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置します。3つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開いてください。トグルスイッチをONにするとドロップダウンメニューが表示され、OFFにすると非表示になります。

カスタマイズできる内容
index.htmlではタイトル、説明文、トグルスイッチのラベル、メニュー項目の追加・削除・並び順を変更できます。用途に合わせてサイトメニューや設定メニューなどへ変更できます。

style.cssでは全体の横幅、余白、背景色、文字色、スイッチの色、角丸、メニューの枠線、ホバー時の色などを変更できます。サイトデザインに合わせて自由に調整できます。

script.jsではトグルスイッチを切り替えたときの表示処理を編集できます。表示対象を変更したり、処理内容を追加したりすることも可能です。

数値調整
style.css

max-width:700px;
全体の最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。

padding:32px;
全体の内側余白です。値を大きくすると余白が広がり、小さくすると詰まった表示になります。

width:52px;
トグルスイッチの横幅です。値を変更するとスイッチ全体の大きさが変わります。

height:28px;
トグルスイッチの高さです。値を大きくするとスイッチが高くなります。

transform:translateX(24px);
ON時に丸いボタンを移動する距離です。値を変更するとスライド量が変わります。

margin-top:20px;
設定項目とドロップダウンメニューの間隔です。値を大きくすると上下の余白が広がります。

padding:16px 20px;
メニュー項目の内側余白です。値を大きくするとクリックしやすい大きさになります。

transition:0.3s;
トグルスイッチの色や丸いボタンが切り替わる時間です。0.3秒で変化します。値を大きくするとゆっくり、小さくすると速く切り替わります。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%max-width:700pxによって画面幅に合わせて自動的に縮小されます。また、640px以下ではpaddingやメニュー項目の余白を調整しているため、スマートフォン・タブレット・PCのいずれでも操作しやすいレイアウトで利用できます。


こちらもおすすめ


コメント