【初心者向け】シンプルなポップアップの作り方:HTML、CSS、jQueryを使う

2024-06-16

jQuery を使ってシンプルなポップアップを作成する方法

HTML でポップアップ構造を作成する

まず、HTML ファイルにポップアップ構造を作成する必要があります。この構造には、ポップアップの内容と開閉ボタンが含まれます。

<!DOCTYPE html>
<html>
<head>
  <title>jQuery ポップアップ</title>
  <link rel="stylesheet" href="style.css">
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script src="script.js"></script>
</head>
<body>

  <button id="openPopup">ポップアップを開く</button>

  <div id="popup" class="popup">
    <div class="popup-content">
      <h2>ポップアップタイトル</h2>
      <p>ここにポップアップの内容を入れます。</p>
      <button id="closeButton">閉じる</button>
    </div>
  </div>

</body>
</html>

上記のコードでは、#openPopup ボタンをクリックするとポップアップが表示されるように設定しています。

CSS でポップアップのスタイルを設定する

次に、CSS ファイルでポップアップのスタイルを設定する必要があります。

.popup {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}

.popup-content {
  background-color: white;
  margin: 50px auto;
  padding: 20px;
  width: 500px;
}

上記のコードでは、ポップアップを非表示 (display: none) にし、画面全体を覆うように設定しています。また、ポップアップコンテンツの背景色や余白を設定しています。

jQuery でポップアップの開閉を制御する

最後に、jQuery を使ってポップアップの開閉を制御する必要があります。

$(document).ready(function(){

  $("#openPopup").click(function(){
    $("#popup").fadeIn(500);
  });

  $("#closeButton").click(function(){
    $("#popup").fadeOut(500);
  });

});

上記のコードでは、#openPopup ボタンをクリックするとポップアップが表示され (fadeIn) 、#closeButton をクリックするとポップアップが非表示になる (fadeOut) ように設定しています。

このコードを参考に、あなただけのポップアップを作成してみてください。




サンプルコード:jQueryでシンプルなポップアップを作成

HTML (index.html)

<!DOCTYPE html>
<html>
<head>
  <title>jQuery ポップアップ</title>
  <link rel="stylesheet" href="style.css">
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script src="script.js"></script>
</head>
<body>

  <button id="openPopup">ポップアップを開く</button>

  <div id="popup" class="popup">
    <div class="popup-content">
      <h2>ポップアップタイトル</h2>
      <p>ここにポップアップの内容を入れます。</p>
      <button id="closeButton">閉じる</button>
    </div>
  </div>

</body>
</html>

CSS (style.css)

.popup {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}

.popup-content {
  background-color: white;
  margin: 50px auto;
  padding: 20px;
  width: 500px;
}

JavaScript (script.js)

$(document).ready(function(){

  $("#openPopup").click(function(){
    $("#popup").fadeIn(500);
  });

  $("#closeButton").click(function(){
    $("#popup").fadeOut(500);
  });

});

説明

このコードは、以下の通り動作します。

  1. HTML:
    • ポップアップの内容(タイトル、本文、閉じるボタン)を定義します。
  2. JavaScript:
    • #openPopup ボタンをクリックすると、#popup がフェードイン (fadeIn) で表示されます。

カスタマイズ

このコードはあくまでも例なので、自由にカスタマイズできます。例えば、以下のように変更できます。

  • ポップアップのサイズを変更する
  • ポップアップにアニメーションを追加する

補足

  • このコードは jQuery 3.6.0 を使用しています。古いバージョンの jQuery を使用している場合は、バージョンに合ったようにコードを変更する必要があります。
  • このコードは、基本的なポップアップを作成する例です。より高度なポップアップを作成するには、追加の JavaScript コードが必要になる場合があります。



jQuery 以外の方法でポップアップを作成する方法

純粋な JavaScript

<!DOCTYPE html>
<html>
<head>
  <title>純粋な JavaScript ポップアップ</title>
  <link rel="stylesheet" href="style.css">
  <script src="script.js"></script>
</head>
<body>

  <button id="openPopup">ポップアップを開く</button>

  <div id="popup" class="popup">
    <div class="popup-content">
      <h2>ポップアップタイトル</h2>
      <p>ここにポップアップの内容を入れます。</p>
      <button id="closeButton">閉じる</button>
    </div>
  </div>

</body>
</html>
.popup {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}

.popup-content {
  background-color: white;
  margin: 50px auto;
  padding: 20px;
  width: 500px;
}
const openPopupButton = document.getElementById('openPopup');
const popup = document.getElementById('popup');
const closeButton = document.getElementById('closeButton');

openPopupButton.addEventListener('click', () => {
  popup.style.display = 'block';
});

closeButton.addEventListener('click', () => {
  popup.style.display = 'none';
});

CSS のみ

<!DOCTYPE html>
<html>
<head>
  <title>CSS のみポップアップ</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <button id="openPopup">ポップアップを開く</button>

  <div id="popup" class="popup">
    <div class="popup-content">
      <h2>ポップアップタイトル</h2>
      <p>ここにポップアップの内容を入れます。</p>
      <button id="closeButton">閉じる</button>
    </div>
  </div>

</body>
</html>
.popup {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  transition: opacity 0.5s ease-in-out;
}

.popup.open {
  display: block;
  opacity: 1;
}

.popup-content {
  background-color: white;
  margin: 50px auto;
  padding: 20px;
  width: 500px;
}

#openPopup {
  cursor: pointer;
}

JavaScript フレームワーク

React、Vue.js、Angular などの JavaScript フレームワークを使用して、より複雑なポップアップを作成することもできます。これらのフレームワークは、コンポーネントベースの開発と双方向データバインディングを提供するため、ポップアップのような動的な UI 要素を作成するのに適しています。

使用する方法は、あなたのニーズとスキルレベルによって異なります。

  • 初心者: jQuery は、シンプルで使いやすいので、初心者におすすめです。
  • 中級者: 純粋な JavaScript または CSS のみを使用すると、より多くの制御と柔軟性を備えたポップアップを作成できます。
  • 上級者: JavaScript フレームワークを使用すると、より複雑なポップアップを作成できますが、学習曲線がより急になります。

javascript jquery css


jQuery: あなたの知らない存在確認メソッド

最もシンプルで効率的な方法は、length プロパティを使用する方法です。length プロパティは、jQueryオブジェクトに含まれる要素数を返します。 つまり、length プロパティが 0 より大きい場合は要素が存在し、0 以下の場合は要素が存在しないことになります。...


【保存版】AngularJSでチェックボックスを自在に操る:リストへのバインドから応用例まで

ng-model ディレクティブを使用するHTMLJavaScriptこの例では、selectedFruitsという配列をコントローラで定義し、ng-modelディレクティブを使用して、チェックボックスの値をこの配列にバインドしています。ユーザーがチェックボックスをオンにすると、その値がselectedFruits配列に追加され、オフにすると配列から削除されます。...


JavaScriptとReactで直面する「Reactコンポーネントが状態変更で再レンダリングされない問題」:解決策と回避策

この問題には、主に以下の3つの原因が考えられます。状態の参照渡し: setState メソッドでオブジェクトを直接更新する場合、Reactはオブジェクトが同じであるとみなして再レンダリングをスキップしてしまう可能性があります。不要な再レンダリング: すべてのコンポーネントが毎回再レンダリングされると、パフォーマンスが低下します。...


React/JSXでスクリプトタグを追加するトラブルシューティング

React/JSXでスクリプトタグを追加する方法はいくつかあります。方法直接追加この方法はシンプルですが、いくつかの問題があります。この方法はより柔軟ですが、セキュリティ上のリスクがあります。React Helmetこの方法は安全で、スクリプトの読み込みタイミングや依存関係を管理できます。...


サンプルコードで学ぶObservableとSubjectの実践例

Observableは、時間経過とともに値を発行するデータストリームを表します。データソースからのイベント通知、センサーデータの読み取り、APIからのレスポンスなど、様々なユースケースで利用できます。Observableはプッシュ型であり、購読者にデータをプッシュ配信します。...