トグルスイッチの状態を保存する方法【HTML/CSS/JavaScript・サンプルコード付き】

トグルスイッチ

トグルスイッチの状態を保存する方法

トグルスイッチの状態を保存する方法を紹介します。このサンプルでは、スイッチをONまたはOFFへ切り替えたときに、その状態をブラウザのlocalStorageへ保存します。ページを再読み込みしても保存した状態が復元されるため、利用者が毎回同じ設定を選び直す必要がありません。

通知設定、ダークモード、表示項目の切り替え、管理画面の機能設定など、前回選択した内容を次回も維持したい場面で利用できます。スイッチを操作するたびに状態が自動保存され、ページを閉じてから再度開いた場合でも、同じブラウザ内で前回のON・OFF状態を引き継げます。

タイトル、説明文、項目名はHTMLから変更でき、CSSではトグルスイッチの大きさ、色、余白、角丸などを調整できます。JavaScriptではlocalStorageへ保存するキー名や初期状態を変更できるため、複数の設定項目へ応用しやすく、状態保存の基本を学びたい初心者にも導入しやすいサンプルです。

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

デモ

通知設定

トグルスイッチの状態を保存し、ページを再読み込みしても維持します。

メール通知

現在の状態:OFF

スイッチを切り替えてからページを再読み込みすると、保存された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="save-toggle-switch-state_wrap">

    <!-- タイトル -->
    <div class="save-toggle-switch-state_title">
      通知設定
    </div>

    <!-- 説明文 -->
    <p class="save-toggle-switch-state_text">
      トグルスイッチの状態を保存し、ページを再読み込みしても維持します。
    </p>

    <!-- トグルスイッチの設定項目 -->
    <div class="save-toggle-switch-state_row">

      <!-- 項目名 -->
      <span class="save-toggle-switch-state_label-text">
        メール通知
      </span>

      <!-- トグルスイッチ -->
      <label class="save-toggle-switch-state_switch">

        <!-- ON・OFF状態を管理するチェックボックス -->
        <input
          id="notification-toggle"
          class="save-toggle-switch-state_checkbox"
          type="checkbox"
          aria-label="メール通知のONとOFFを切り替える">

        <!-- スイッチの背景と丸いノブ -->
        <span class="save-toggle-switch-state_slider"></span>

      </label>

    </div>

  </div>

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

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

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLでトグルスイッチと状態表示を配置し、CSSでデザインを設定します。JavaScriptではトグルスイッチのON・OFF状態をlocalStorageへ保存し、ページを再読み込みしたときも前回の状態を復元します。簡単な構成のため、初心者でも状態保存の仕組みを学びながら導入できます。

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

各ファイルの役割
index.htmlは画面に表示するタイトル、説明文、トグルスイッチ、現在の状態表示を配置するファイルです。表示する文章や項目名を自由に変更できます。

style.cssはカード全体のデザインやトグルスイッチの見た目、配色、サイズ、余白、角丸、アニメーションを設定するファイルです。デザインを用途に合わせて調整できます。

script.jsはトグルスイッチのON・OFF状態を切り替え、現在の状態表示を更新する処理と、localStorageへ状態を保存・復元する処理を担当します。

設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置してください。3つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開くと利用できます。トグルスイッチを切り替えると状態が自動的に保存され、ページを再読み込みしても前回のON・OFF状態が維持されます。

カスタマイズできる内容
index.htmlではタイトル、説明文、項目名、状態表示の文章を変更できます。通知設定以外にも、ダークモード設定や各種オプション設定など用途に合わせた内容へ変更できます。

style.cssではカード全体の横幅、背景色、文字色、余白、角丸、スイッチのサイズ、ON・OFF時の色、影、アニメーション速度を変更できます。

script.jsでは保存キー名を変更できるため、複数のトグルスイッチを個別に保存するような構成にも対応できます。また、状態表示の内容も用途に合わせて変更できます。

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

padding:32px;
カード内側の余白です。値を大きくすると余白が広がり、小さくすると内容が詰まります。

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

height:46px;
トグルスイッチの高さです。値を大きくするとスイッチが大きく表示されます。

width:36px;
丸いノブの大きさです。値を変更するとノブのサイズが変わります。

transform:translateX(42px);
ON時にノブが移動する距離です。スイッチのサイズを変更した場合は、この値も合わせて調整してください。

transition:0.3s;
背景色とノブが切り替わる時間です。0.3秒で変化します。値を大きくするとゆっくり、小さくすると速く切り替わります。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%max-width:700pxによって画面幅に応じてカード全体が縮小されます。また、640px以下ではmedia queryを使用して余白を小さくし、設定項目を縦並びへ変更しています。そのため、スマートフォン・タブレット・PCでも快適に利用できます。


こちらもおすすめ


コメント