본문 바로가기
공부일지/Javascript

Vanilla JS. modal

by 곰인간 2023. 1. 7.

* 노마드코더 영상을 참고하여 만들었습니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>모달창 만들기</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <button id="btn">열기</button>
    <div class="modal hidden">
        <div class="modal_overlay"></div>
        <div class="modal_content">
            <h1>I'm a modal</h1>
            <button></button>
        </div>
    </div>
    <script src="app.js"></script>
</body>
</html>

 

const openModal = document.querySelector("#btn");
const modal = document.querySelector(".modal");
const overLay = modal.querySelector(".modal_overlay");
const close = modal.querySelector("button");



function openHandle() {
    modal.classList.remove("hidden");
}

function closeHandle() {
    modal.classList.add("hidden");
}
// const openHandle = () => {
//     modal.classList.remove("hidden");
// }

// const closeHandle = () => {
//     modal.classList.add("hidden");
// }

openModal.addEventListener("click", openHandle);
close.addEventListener("click", closeHandle);
overLay.addEventListener("click", closeHandle);

*위 주석처리 부분은 노마드코더 영상에서는 화살표 함수로 작성했지만, 화살표 함수를 잘 모르기 때문에 기존 함수로 수정했습니다.

자바스크립트로 만든 모달창 동작

 

열기를 누르면 모달창이 나오며, X버튼이나 모달창 바깥 부분을 누르면 사라지는게 제대로 작동하고 있습니다.

댓글