読み込み中...

JavaScriptポップアップ!はい/いいえボタンの7つの使い方

JS
この記事は約12分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、JavaScriptを使ったポップアップのはい/いいえボタンの実装方法をマスターすることができます。

初心者の方でもわかりやすいように、基本から応用例まで具体的なサンプルコード付きで解説していきます。

●JavaScriptポップアップの基本

○ポップアップとは

ポップアップは、ウェブページ上で表示される小さなウィンドウのことで、ユーザーに対して情報を伝えたり、確認を求めたりするために使用されます。

○はい/いいえボタンの役割

はい/いいえボタンは、ユーザーに選択肢を提示し、その回答に応じて処理を行うためのUI要素です。

たとえば、データの削除確認や利用規約への同意など、ユーザーの意思を確認する場面で利用されます。

●はい/いいえボタンの実装方法

○サンプルコード1:基本的なポップアップ

このコードでは、JavaScriptのconfirm関数を使って基本的なポップアップを表示しています。

この例では、ボタンをクリックするとポップアップが表示され、はい/いいえの選択に応じてアラートが出力されます。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基本的なポップアップ</title>
<script>
function showPopup() {
  if (confirm("このページを離れますか?")) {
    alert("はいが選択されました");
  } else {
    alert("いいえが選択されました");
  }
}
</script>
</head>
<body>
<button onclick="showPopup()">ポップアップを表示</button>
</body>
</html>

○サンプルコード2:条件分岐を利用したポップアップ

このコードでは、条件分岐を使ってポップアップの結果に応じた処理を行っています。

この例では、年齢の入力に応じて、成人か未成年かを確認するポップアップが表示されます。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>条件分岐を利用したポップアップ</title>
<script>
function ageCheck() {
  var age = prompt("あなたの年齢を入力してください");
  if (age >= 18) {
    if (confirm("あなたは成人です。このページを離れますか?")) {
      alert("はいが選択されました");
    } else {
      alert("いいえが選択されました");
    }
  } else {
    alert("あなたは未成年です。");
  }
}
</script>
</head>
<body>
<button onclick="ageCheck()">年齢確認</button>
</body>
</html>

○サンプルコード3:カスタムデザインのポップアップ

このコードでは、HTMLとCSSを使って独自デザインのポップアップを実装しています。

この例では、ボタンをクリックするとカスタムデザインのポップアップが表示され、はい/いいえボタンで結果がアラートとして出力されます。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>カスタムデザインのポップアップ</title>
<style>
.popup {
  display: none;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: white;
  padding: 20px;
  border: 1px solid black;
}
</style>
<script>
function showCustomPopup() {
  document.getElementById("customPopup").style.display = "block";
}

function hideCustomPopup(result) {
  document.getElementById("customPopup").style.display = "none";
  if (result) {
    alert("はいが選択されました");
  } else {
    alert("いいえが選択されました");
  }
}
</script>
</head>
<body>
<button onclick="showCustomPopup()">カスタムポップアップを表示</button>
<div id="customPopup" class="popup">
  <p>このページを離れますか?</p>
  <button onclick="hideCustomPopup(true)">はい</button>
  <button onclick="hideCustomPopup(false)">いいえ</button>
</div>
</body>
</html>

●応用例とサンプルコード

○サンプルコード4:フォームの入力確認

このコードでは、フォームの入力内容をポップアップで確認してから送信する機能を実装しています。

この例では、名前とメールアドレスを入力し、送信ボタンを押すと入力内容の確認用ポップアップが表示されます。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>フォームの入力確認</title>
<script>
function confirmFormSubmission() {
  var name = document.getElementById("name").value;
  var email = document.getElementById("email").value;
  
  if (confirm("名前: " + name + "\nメールアドレス: " + email + "\n\n以上の内容で送信しますか?")) {
    document.getElementById("form").submit();
  }
}
</script>
</head>
<body>
<form id="form" action="#" method="post">
  <label>名前:<input type="text" id="name" name="name"></label><br>
  <label>メールアドレス:<input type="email" id="email" name="email"></label><br>
  <button type="button" onclick="confirmFormSubmission()">送信</button>
</form>
</body>
</html>

○サンプルコード5:ページ遷移時の警告

このコードでは、ページ遷移時に警告ポップアップを表示し、ユーザーが確認を取ることができます。

この例では、ページから離れるときに「このページを離れますか?」という確認用ポップアップが表示されます。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ページ遷移時の警告</title>
<script>
window.addEventListener("beforeunload", function (event) {
  event.preventDefault();
  event.returnValue = "このページを離れますか?";
});
</script>
</head>
<body>
<p>ページ遷移時に警告ポップアップが表示されます。</p>
</body>
</html>

○サンプルコード6:削除操作の確認

このコードでは、データの削除操作を実行する前に、確認ポップアップを表示する機能を提供しています。

この例では、削除ボタンをクリックすると、「本当に削除してよろしいですか?」という確認用ポップアップが表示され、ユーザーが確認できます。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>削除操作の確認</title>
<script>
function confirmDeletion() {
  if (confirm("本当に削除してよろしいですか?")) {
    alert("削除が完了しました");
  } else {
    alert("削除をキャンセルしました");
  }
}
</script>
</head>
<body>
<button onclick="confirmDeletion()">削除</button>
</body>
</html>

○サンプルコード7:Cookieの利用同意確認

このコードでは、ウェブサイトでCookieを利用する際の同意確認ポップアップを実装しています。

この例では、同意ボタンをクリックすることで、Cookieの利用に同意したことになり、ポップアップが消えます。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Cookieの利用同意確認</title>
<style>
.cookie-popup {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: #f9f9f9;
  padding: 20px;
  text-align: center;
  display: none;
}
</style>
<script>
function agreeToUseCookies() {
  document.getElementById("cookie-popup").style.display = "none";
}
window.addEventListener("load", function () {
  setTimeout(function () {
    document.getElementById("cookie-popup").style.display = "block";
  }, 1000);
});
</script>
</head>
<body>
<div id="cookie-popup" class="cookie-popup">
  このウェブサイトではCookieを使用しています。続けることで、Cookieの使用に同意したものとみなされます。
  <button onclick="agreeToUseCookies()">同意する</button>
</div>
</body>
</html>

●注意点と対処法

ポップアップの利用にはいくつかの注意点があります。

主な注意点とその対処法を説明します。

  1. ユーザビリティの低下:頻繁にポップアップが表示されると、ユーザーのストレスが増加し、ウェブサイトのユーザビリティが低下することがあります。
    対処法として、ポップアップの使用は最小限に抑えることが重要です。
  2. モバイルデバイスでの表示問題:モバイルデバイスでは、ポップアップの表示が正しくないことがあります。
    対処法として、メディアクエリを使用して、モバイルデバイス向けのデザインを適用することができます。
  3. ブラウザのポップアップブロッカー:一部のブラウザでは、ポップアップブロッカーが有効になっていることがあります。
    その場合、ポップアップが表示されないことがあります。対処法として、インラインポップアップ(ページ内に表示されるポップアップ)を使用することで、この問題を回避できます。

●カスタマイズ方法

ポップアップをカスタマイズする方法はいくつかあります。

主なカスタマイズ方法を紹介します。

  1. スタイルの変更:CSSを使用して、ポップアップの背景色、テキスト色、フォントサイズなどのスタイルを変更することができます。
  2. アニメーションの追加:CSSアニメーションやJavaScriptを使用して、ポップアップにアニメーション効果を追加することができます。
    例えば、フェードイン・フェードアウト効果やスライド効果などが考えられます。
  3. イベントハンドラの追加:JavaScriptを使用して、ポップアップの表示や非表示を制御するイベントハンドラを追加することができます。
    例えば、特定の条件を満たした場合にポップアップを表示させるなどが可能です。

まとめ

この記事では、JavaScriptを使用したポップアップの基本的な実装方法や応用例、カスタマイズ方法について説明しました。

ポップアップはユーザビリティやデザインに注意を払いながら、効果的的に活用することで、ウェブサイトの利便性を向上させることができます。

しかし、ポップアップの使用が過剰になると、逆にユーザビリティが低下することがあるため、適切なバランスを保ちながら利用することが重要です。