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

トグルスイッチ

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

ドロワーメニューを表示するトグルスイッチを作る方法を紹介します。このサンプルでは、トグルスイッチをONにすると画面の横からドロワーメニューがスライド表示され、OFFにすると閉じる動作を実装します。ボタンではなくトグルスイッチを操作するだけでメニューの表示・非表示を切り替えられるため、設定画面や管理画面などでも直感的に利用できます。

管理画面のサイドメニュー、会員サイトの設定画面、ダッシュボードのナビゲーション切り替えなど、メニューを必要なときだけ表示したい場面で活用できます。トグルスイッチの状態とドロワーメニューの表示が連動するため、現在の状態が分かりやすく、シンプルなUIとして導入できます。

タイトルや説明文、トグルスイッチのラベル、ドロワーメニュー内のメニュー項目はHTMLから変更できます。CSSでは横幅、色、余白、角丸、影、アニメーション時間などを調整でき、JavaScriptでは表示・非表示の動作を制御しています。レスポンシブにも対応しているため、スマートフォン・タブレット・PCで利用しやすいサンプルです。

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

デモ

メニュー表示

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

トグルスイッチをONにすると左側からドロワーメニューが表示されます。「×」ボタン、背景部分、またはメニュー項目をクリックすると閉じ、スイッチもOFFへ戻ります。

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

<!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-drawer-menu_wrap">

    <!-- タイトル -->
    <div class="toggle-drawer-menu_title">
      メニュー表示
    </div>

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

    <!-- ドロワーメニュー表示設定 -->
    <div class="toggle-drawer-menu_setting">

      <label
        class="toggle-drawer-menu_label"
        for="toggle-drawer-menu-input">
        ドロワーメニューを表示する
      </label>

      <!-- トグルスイッチ -->
      <div class="toggle-drawer-menu_control">

        <input
          id="toggle-drawer-menu-input"
          class="toggle-drawer-menu_input"
          type="checkbox">

        <label
          class="toggle-drawer-menu_switch"
          for="toggle-drawer-menu-input"
          aria-label="ドロワーメニューの表示を切り替える">
        </label>

      </div>

    </div>

  </div>

  <!-- 背景オーバーレイ -->
  <div
    class="toggle-drawer-menu_overlay"
    id="toggle-drawer-menu-overlay">
  </div>

  <!-- ドロワーメニュー -->
  <aside
    class="toggle-drawer-menu_drawer"
    id="toggle-drawer-menu-drawer"
    aria-hidden="true">

    <!-- ドロワーヘッダー -->
    <div class="toggle-drawer-menu_header">

      <!-- ドロワータイトル -->
      <div class="toggle-drawer-menu_heading">
        メニュー
      </div>

      <!-- 閉じるボタン -->
      <button
        id="toggle-drawer-menu-close"
        class="toggle-drawer-menu_close"
        type="button"
        aria-label="ドロワーメニューを閉じる">
        ×
      </button>

    </div>

    <!-- メニュー項目 -->
    <nav
      class="toggle-drawer-menu_nav"
      aria-label="メインメニュー">

      <a class="toggle-drawer-menu_link" href="#">
        ホーム
      </a>

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

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

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

    </nav>

  </aside>

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

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

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLではトグルスイッチとドロワーメニューの構造を作成し、CSSではトグルスイッチやドロワーメニュー、背景オーバーレイのデザインとアニメーションを設定します。JavaScriptではトグルスイッチの状態に応じてドロワーメニューの表示・非表示を切り替える処理を行います。

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

各ファイルの役割
index.htmlはトグルスイッチ、背景オーバーレイ、ドロワーメニュー、メニュー項目など画面全体の構造を作成するファイルです。タイトル、説明文、メニュー名、リンク名などを自由に変更できます。

style.cssはトグルスイッチやドロワーメニューの見た目を設定するファイルです。横幅、余白、背景色、文字色、角丸、影、スライドアニメーションなどを変更できます。

script.jsはトグルスイッチをONにするとドロワーメニューを表示し、OFFまたは閉じるボタン、背景、メニュー項目をクリックすると閉じる処理を担当します。

設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置してください。3つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開くと利用できます。トグルスイッチをONにすると左側からドロワーメニューが表示され、閉じるボタン・背景・メニュー項目をクリックするとドロワーメニューが閉じてスイッチもOFFへ戻ります。

カスタマイズできる内容
index.htmlではタイトル、説明文、設定項目名、ドロワーメニューの見出し、各メニュー項目の文字を変更できます。用途に合わせて管理画面、会員サイト、ECサイトなどのメニューへ変更できます。

style.cssでは全体の横幅、余白、背景色、文字色、角丸、影、ドロワーメニューの横幅、トグルスイッチの色、アニメーション時間などを変更できます。

script.jsではドロワーメニューを開閉するタイミングや、閉じる対象となる操作を変更できます。

数値調整
style.css

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

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

width:320px;
ドロワーメニューの横幅です。値を大きくするとドロワーが広くなり、小さくすると細く表示されます。

padding:32px 24px;
ドロワーメニュー内側の余白です。値を変更するとメニュー項目との間隔が変わります。

border-radius:18px;
全体カードの角丸です。値を大きくすると丸みが強くなり、小さくすると四角に近づきます。

border-radius:12px;
設定項目カードの角丸です。値を変更すると角の丸みが変わります。

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

transition:.3s;
トグルスイッチやドロワーメニューのアニメーション時間です。0.3秒で切り替わります。値を大きくするとゆっくり、小さくすると速くなります。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%max-width:700pxによって画面幅に応じてレイアウトが縮小されます。また、640px以下では余白を調整し、ドロワーメニューも画面幅に収まるようmax-width:85%を利用しているため、スマートフォン・タブレット・PCで快適に利用できます。


こちらもおすすめ


コメント