หน้าต่างป๊อปอัป (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