🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

หน้าต่างป๊อปอัป (Modal)

เทมเพลตพื้นฐานสำหรับแสดงป๊อปอัปเมื่อคลิก

👀 เดโมตัวอย่าง

👇 คลิกปุ่มด้านล่าง 👇

💡 การใช้งานและข้อดีของเทมเพลตนี้

  • ユーザーへのแจ้งเตือน・注意喚起・確認ダイアログに便利
  • สามารถใช้แสดงภาพขนาดใหญ่หรือฟอร์มได้
  • แสดงข้อมูลโดยไม่เปลี่ยนหน้า ช่วยให้ UX ดีขึ้น
  • ปรับแต่งสไตล์ให้ทันสมัยได้ง่าย
  • พื้นหลังมืดช่วยเน้นเนื้อหาที่สำคัญ

📋 รหัสที่สามารถคัดลอกและวางได้


<!DOCTYPE html>
<html lang="th">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>หน้าต่างโมดัล</title>
  <style>
    /* พื้นหลังของการซ้อนทับของโมดัล */
    .modal-overlay {
      display: none; /* ซ่อนอยู่ในตอนเริ่มต้น */
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(0, 0, 0, 0.5); /* พื้นหลังโปร่งใส */
      z-index: 1000; /* ทำให้มั่นใจว่าโมดัลจะแสดงอยู่ข้างหน้าส่วนอื่น */
    }

    /* หน้าต่างโมดัล */
    .modal {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%); /* จัดตำแหน่งให้อยู่กลาง */
      background-color: white;
      padding: 20px;
      border-radius: 8px;
      box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
      width: 300px;
      text-align: center;
    }

    /* ปุ่มปิด */
    .close-btn {
      position: absolute;
      top: 10px;
      right: 10px;
      background: none;
      border: none;
      font-size: 20px;
      cursor: pointer;
    }

    /* รูปแบบของปุ่ม */
    button {
      padding: 10px 20px;
      font-size: 1rem;
      cursor: pointer;
    }
  </style>
</head>
<body>

  <section>
    <h2>👀 เดโม</h2>
    <div style="text-align: center; font-size: 1.7rem; margin: 1rem 0;">👇 คลิกปุ่มด้านล่าง 👇</div>
    <button onclick="openModal()">เปิดโมดัล</button>

    <!-- การซ้อนทับของโมดัล -->
    <div class="modal-overlay" id="modal">
      <div class="modal">
        <button class="close-btn" onclick="closeModal()">×</button>
        <h3>การแจ้งเตือน</h3>
        <p>นี่คือต่างหน้าต่างโมดัล คุณสามารถปิดได้โดยการคลิกพื้นที่ภายนอกหรือปุ่ม ×</p>
      </div>
    </div>
  </section>

  <script>
    // ฟังก์ชันเปิดโมดัล
    function openModal() {
      document.getElementById('modal').style.display = 'block'; // แสดงโมดัล
    }

    // ฟังก์ชันปิดโมดัล
    function closeModal() {
      document.getElementById('modal').style.display = 'none'; // ซ่อนโมดัล
    }

    // ปิดโมดัลโดยการคลิกพื้นที่ภายนอก
    document.querySelector('.modal-overlay').addEventListener('click', function(event) {
      if (event.target === document.querySelector('.modal-overlay')) {
        closeModal();
      }
    });
  </script>

</body>
</html>
    

🧩 การประยุกต์ใช้งานและตัวอย่างที่เหมาะสม

โมดอล (Modal) เป็นวิธีที่มีประสิทธิภาพมากในการแสดงข้อความสำคัญให้ผู้ใช้เห็นได้ชัดเจน การใช้ onclick เพื่อเปิดหรือปิดโมดอล เป็นเทคนิคพื้นฐานที่มักใช้กันในเว็บไซต์สมัยใหม่

ตัวอย่างการใช้งาน เช่น แสดงภาพขยายแบบป๊อปอัพ หรือแสดงฟอร์มติดต่อ โดยไม่ต้องเปลี่ยนหน้า เพียงใช้คำสั่ง document.getElementById("modal").style.display = "flex" ก็สามารถแสดงหน้าต่างพร้อมพื้นหลังมืดได้ทันที

สำหรับการปิดโมดอล ก็ทำได้ง่าย ๆ ด้วยฟังก์ชัน closeModal() ที่ตั้งค่า style.display ให้เป็น "none" ซึ่งทำให้โค้ดเข้าใจง่ายและจัดการได้สะดวก

หากต้องการให้ใช้งานได้สะดวกยิ่งขึ้น อาจเพิ่มความสามารถในการปิดโมดอลเมื่อคลิกที่พื้นหลัง หรือกดปุ่ม Esc ก็จะช่วยให้ประสบการณ์ใช้งานราบรื่น เหมาะสำหรับผู้เริ่มต้นที่ต้องการฝึกใช้งาน DOM และเหตุการณ์ใน JavaScript