프로그래밍/Javascript

javascript 팝업창 만들기

타코코딩 2023. 8. 21. 22:39
  let 팝업종료시점 = localStorage.getItem("popup-hide") / 1000;
  let 현재시점 = Date.now() / 1000;

  document.querySelector(".popup_box button").addEventListener("click", (e) => {
    document.querySelector(".popup_box").style.display = "none";
    if (document.querySelector(".popup_box input[type=checkbox]").checked) {
      localStorage.setItem("popup-hide", Date.now());
    }
  });

  if (localStorage.getItem("popup-hide")) {
    document.querySelector(".popup_box").style.display = "none";
    if (팝업종료시점 + 24 * 60 * 60 < 현재시점) {
      document.querySelector(".popup_box").style.display = "block";
      localStorage.removeItem("popup-hide");
    }
  } else {
    document.querySelector(".popup_box").style.display = "block";
  }
}​
<body>
  <div class="popup_box">
      <p>3. 팝업창 구현하기</p>
      <p>
        <input type="checkbox"> 오늘 하루 이 창 열지 않기
      </p>
      <p>
        <button>닫기</button>
      </p>
    </div>
</body>

  닫기버튼을 클릭하면 팝업창이 닫힌다
  checkbox를 체크하고 클릭하면 일정시간 팝업창이 나타나지 않는다
  체크시 로컬스토리지에 datenow 값을 setitem 한다  
   로컬스토리지에 값이 있으면 새로고침을 해도 창이 나타지 않는다. 
  하루가 지나면 팝업창이 새로고침하면 다시 나타난다
   팝업종료시점+하루 < 현재시점 (초로환산하려면 1000씩 나눠야 함)