ONになっている項目名を表示するトグルスイッチを作る方法【HTML/CSS/JavaScript・サンプルコード付き】

トグルスイッチ

ONになっている項目名を表示するトグルスイッチを作る方法

ONになっている項目名を表示するトグルスイッチを作る方法を紹介します。このサンプルでは、複数のトグルスイッチを切り替えると、現在ONになっている項目名だけを一覧表示します。JavaScriptでチェック状態を取得し、ONの項目だけをリアルタイムで画面へ反映するシンプルな実装です。

通知設定や公開設定、会員サイトのプロフィール設定、管理画面の各種オプションなど、利用者が現在有効になっている設定を分かりやすく確認したい場面で利用できます。すべての項目を確認しなくても、有効な設定だけを一覧で表示できるため、設定内容をひと目で把握できます。

HTMLでは項目名や初期状態を変更でき、CSSではカードデザインやトグルスイッチ、一覧表示エリアの色や余白、角丸などを自由に調整できます。JavaScriptでは表示対象となる項目を自動で取得しているため、項目を追加・削除しても対応しやすく、レスポンシブ対応のためスマートフォン・タブレット・PCでも利用できます。

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

デモ

通知設定

トグルスイッチを切り替えると、現在ONになっている項目名を表示します。

メール通知
プッシュ通知
通知音
キャンペーン通知
ONになっている項目

    各トグルスイッチを切り替えると、現在ONになっている項目名がリアルタイムで更新されます。

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

    <!DOCTYPE html>
    <html lang="ja">
    <head>
    
      <!-- 文字コード -->
      <meta charset="UTF-8">
    
      <!-- スマートフォン対応 -->
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
    
      <!-- ページタイトル -->
      <title>ONになっている項目名を表示するトグルスイッチ</title>
    
      <!-- CSSファイル -->
      <link rel="stylesheet" href="style.css">
    
    </head>
    <body>
    
      <!-- トグルスイッチ全体 -->
      <div class="toggle-switch-show-on_wrap">
    
        <!-- タイトル -->
        <div class="toggle-switch-show-on_title">
          通知設定
        </div>
    
        <!-- 説明文 -->
        <p class="toggle-switch-show-on_text">
          トグルスイッチを切り替えると、現在ONになっている項目名を表示します。
        </p>
    
        <!-- トグルスイッチ一覧 -->
        <div class="toggle-switch-show-on_list">
    
          <!-- メール通知 -->
          <div class="toggle-switch-show-on_item">
    
            <label
              class="toggle-switch-show-on_name"
              for="toggle-switch-show-on-email">
              メール通知
            </label>
    
            <div class="toggle-switch-show-on_control">
    
              <input
                class="toggle-switch-show-on_input"
                id="toggle-switch-show-on-email"
                type="checkbox"
                data-name="メール通知"
                checked>
    
              <label
                class="toggle-switch-show-on_switch"
                for="toggle-switch-show-on-email"
                aria-label="メール通知を切り替える">
              </label>
    
            </div>
    
          </div>
    
          <!-- プッシュ通知 -->
          <div class="toggle-switch-show-on_item">
    
            <label
              class="toggle-switch-show-on_name"
              for="toggle-switch-show-on-push">
              プッシュ通知
            </label>
    
            <div class="toggle-switch-show-on_control">
    
              <input
                class="toggle-switch-show-on_input"
                id="toggle-switch-show-on-push"
                type="checkbox"
                data-name="プッシュ通知">
    
              <label
                class="toggle-switch-show-on_switch"
                for="toggle-switch-show-on-push"
                aria-label="プッシュ通知を切り替える">
              </label>
    
            </div>
    
          </div>
    
          <!-- 通知音 -->
          <div class="toggle-switch-show-on_item">
    
            <label
              class="toggle-switch-show-on_name"
              for="toggle-switch-show-on-sound">
              通知音
            </label>
    
            <div class="toggle-switch-show-on_control">
    
              <input
                class="toggle-switch-show-on_input"
                id="toggle-switch-show-on-sound"
                type="checkbox"
                data-name="通知音"
                checked>
    
              <label
                class="toggle-switch-show-on_switch"
                for="toggle-switch-show-on-sound"
                aria-label="通知音を切り替える">
              </label>
    
            </div>
    
          </div>
    
          <!-- キャンペーン通知 -->
          <div class="toggle-switch-show-on_item">
    
            <label
              class="toggle-switch-show-on_name"
              for="toggle-switch-show-on-campaign">
              キャンペーン通知
            </label>
    
            <div class="toggle-switch-show-on_control">
    
              <input
                class="toggle-switch-show-on_input"
                id="toggle-switch-show-on-campaign"
                type="checkbox"
                data-name="キャンペーン通知">
    
              <label
                class="toggle-switch-show-on_switch"
                for="toggle-switch-show-on-campaign"
                aria-label="キャンペーン通知を切り替える">
              </label>
    
            </div>
    
          </div>
    
        </div>
    
        <!-- ONになっている項目名 -->
        <div
          class="toggle-switch-show-on_result"
          aria-live="polite">
    
          <div class="toggle-switch-show-on_result-title">
            ONになっている項目
          </div>
    
          <ul
            class="toggle-switch-show-on_result-list"
            id="toggle-switch-show-on-list">
          </ul>
    
        </div>
    
      </div>
    
      <!-- JavaScriptファイル -->
      <script src="script.js"></script>
    
    </body>
    </html>
    
    コードをコピーする場合 使用するコードのタブを選び、「このタブをコピー」をクリックすると、現在表示中のコードをコピーできます。
    サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。

    ファイル構成と設置方法

    このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。複数のトグルスイッチを切り替えると、現在ONになっている項目名だけをリアルタイムで一覧表示できます。HTMLでは項目や表示エリアを作成し、CSSではトグルスイッチや一覧表示のデザインを設定し、JavaScriptではONになっている項目名を取得して表示内容を更新します。

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

    各ファイルの役割
    index.htmlはトグルスイッチ一覧とONになっている項目名を表示するエリアを作成するファイルです。タイトル、説明文、項目名を変更できます。また、data-name属性を書き換えることで表示される項目名も変更できます。

    style.cssは画面全体のデザインを設定するファイルです。横幅、余白、背景色、枠線、角丸、トグルスイッチの色、一覧表示エリアのデザインなどを変更できます。

    script.jsはトグルスイッチの状態を監視し、ONになっている項目名だけを一覧へ表示する処理を行います。すべてOFFの場合は「ONになっている項目はありません。」というメッセージを表示します。

    設置方法・使い方
    sampleフォルダへindex.html、style.css、script.jsを配置します。3つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開いてください。トグルスイッチを切り替えると、ONになっている項目名だけがリアルタイムで更新されます。

    カスタマイズできる内容
    index.htmlではタイトル、説明文、各項目名を自由に変更できます。トグルスイッチを追加・削除したり、data-name属性を書き換えることで一覧へ表示する項目名も変更できます。

    style.cssでは全体の横幅、余白、背景色、文字色、角丸、トグルスイッチの色、一覧表示エリアのデザインを変更できます。用途に合わせて設定画面や通知画面などさまざまなレイアウトへ調整できます。

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

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

    gap:12px;
    各項目の間隔です。値を大きくすると上下の間隔が広がり、小さくすると狭くなります。

    min-height:60px;
    各項目の高さです。値を大きくすると項目全体が高くなり、小さくするとコンパクトになります。

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

    height:28px;
    トグルスイッチの高さです。値を変更するとスイッチの縦サイズが変わります。

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

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

    レスポンシブ対応
    このサンプルはレスポンシブ対応です。style.cssのwidth:100%max-width:700pxにより画面幅に合わせて縮小表示されます。また、640px以下ではpaddingや項目間隔を調整するmedia queryを使用しているため、スマートフォン・タブレット・PCでも利用できます。


    こちらもおすすめ


    コメント