パスワード入力で開くトグルスイッチを作る方法【HTML/CSS/JavaScript・サンプルコード付き】

トグルスイッチ

パスワード入力で開くトグルスイッチを作る方法

パスワード入力で開くトグルスイッチを作る方法を紹介します。このサンプルでは、トグルスイッチを操作するとパスワード入力欄が表示され、正しいパスワードを入力した場合のみトグルスイッチをONへ切り替えられます。JavaScriptで入力内容を判定するシンプルな構成のため、基本的な認証付きUIのサンプルとして利用できます。

管理画面の設定変更、管理者専用オプション、デバッグ機能の切り替え、社内ツールの特定機能など、簡易的な認証を行ってから設定を変更したい場面で利用できます。パスワードが一致しない場合はトグルスイッチは切り替わらず、正しい入力時のみ状態が変更されるため、通常のトグルスイッチより誤操作を防ぎやすくなります。

タイトル、説明文、パスワード入力欄の案内文、トグルスイッチの項目名はHTMLから変更できます。CSSでは色や余白、角丸、文字サイズなどを自由に調整でき、JavaScriptでは判定するパスワードを変更できます。レスポンシブにも対応しているため、スマートフォン・タブレット・PCで利用しやすいサンプルです。なお、本記事はサンプルコードのため、実運用の認証機能として使用するものではありません。

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

デモ

管理者設定

パスワードを入力するとトグルスイッチをONにできます。

管理者モード
※デモ用パスワード:1234

デモ用パスワードは「1234」です。正しいパスワードを入力するとトグルスイッチが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-password-open_wrap">

    <!-- タイトル -->
    <div class="toggle-password-open_title">
      管理者設定
    </div>

    <!-- 説明文 -->
    <p class="toggle-password-open_text">
      正しいパスワードを入力すると、管理者モードのトグルスイッチがONになります。
    </p>

    <!-- パスワード入力欄 -->
    <label
      class="toggle-password-open_label"
      for="toggle-password-open-input">
      パスワード
    </label>

    <input
      class="toggle-password-open_password"
      id="toggle-password-open-input"
      type="password"
      placeholder="パスワードを入力"
      autocomplete="off">

    <!-- 認証ボタン -->
    <button
      class="toggle-password-open_button"
      id="toggle-password-open-button"
      type="button">
      認証してONにする
    </button>

    <!-- 管理者モード設定 -->
    <div class="toggle-password-open_item">

      <!-- 設定項目名 -->
      <span class="toggle-password-open_name">
        管理者モード
      </span>

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

        <!-- JavaScriptで切り替えるチェックボックス -->
        <input
          class="toggle-password-open_input"
          id="toggle-password-open-switch"
          type="checkbox"
          disabled>

        <!-- トグルスイッチ本体 -->
        <label
          class="toggle-password-open_switch"
          for="toggle-password-open-switch"
          aria-label="管理者モードの状態">
        </label>

      </div>

    </div>

    <!-- 認証結果 -->
    <p
      class="toggle-password-open_message"
      id="toggle-password-open-message"
      aria-live="polite">
      ※デモ用パスワード:1234
    </p>

  </div>

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

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

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLではパスワード入力欄、認証ボタン、トグルスイッチを配置し、CSSでは入力フォームやトグルスイッチ全体のデザインを設定しています。JavaScriptでは入力されたパスワードを判定し、正しい場合のみトグルスイッチをONへ切り替える処理を行います。

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

各ファイルの役割
index.htmlはパスワード入力欄、認証ボタン、トグルスイッチ、認証結果メッセージを配置するファイルです。タイトルや説明文、項目名、デモ用パスワード案内などの文章を変更できます。

style.cssは入力欄、認証ボタン、トグルスイッチ、メッセージ表示など全体の見た目を設定するファイルです。色、余白、角丸、文字サイズ、背景色、枠線などを用途に合わせて調整できます。

script.jsはパスワードの判定を行うファイルです。正しいパスワードが入力された場合のみトグルスイッチをONへ切り替え、認証結果のメッセージを更新します。

設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置します。3つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開いてください。パスワード入力欄へ「1234」を入力して認証ボタンを押すと、トグルスイッチがONへ切り替わります。異なるパスワードを入力した場合は認証に失敗し、トグルスイッチはOFFのままになります。

カスタマイズできる内容
index.htmlではタイトル、説明文、項目名、ボタン名、メッセージ内容を変更できます。管理者モード以外にも、開発者モードやメンテナンスモードなど用途に合わせて表示内容を変更できます。

style.cssでは入力欄やボタン、トグルスイッチの色、サイズ、余白、角丸、影、文字サイズを変更できます。サイトデザインに合わせて見た目を自由に調整できます。

script.jsでは認証に使用するパスワードや、認証成功時・失敗時に表示するメッセージを変更できます。判定条件を書き換えることで、別のパスワードへ変更することもできます。

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

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

border-radius:18px;
全体の角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。

padding:14px 16px;
入力欄とボタンの内側余白です。値を大きくすると操作しやすいサイズになり、小さくするとコンパクトになります。

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

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

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

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

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%max-width:700pxにより画面幅に合わせて自動調整されます。また、640px以下ではpadding:24px 18px;や項目の余白を変更しているため、スマートフォン・タブレット・PCでも見やすく利用できます。


こちらもおすすめ


コメント