테스트 사이트 - 개발 중인 베타 버전입니다

다크모드 고정 방법 채택완료

켠켠 4년 전 조회 2,496

</p>

<p>document.addEventListener("DOMContentLoaded", function () {

  var modeSwitch = document.querySelector(".mode-switch");</p>

<p>  modeSwitch.addEventListener("click", function () {

    document.documentElement.classList.toggle("dark");

    modeSwitch.classList.toggle("active");

  });</p>

<p>

다크모드를 구현하긴 했는데 새로고침이나 페이지를 이동하게되면 풀리게 되는데요,

localStorage 구문을 사용하면 된다고 나오는데 제가 잘못넣는건지 작동이 안돼서 고수님들께

질문드려봅니다 ? 저 구문에서 다크모드를 고정하려면 localStorage를 어떻게 넣어야 할까요..?

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
4년 전

</p>

<pre>
<code>document.addEventListener("DOMContentLoaded", function () {
  var modeSwitch = document.querySelector(".mode-switch");
  if(localStorage.getItem('theme') === 'dark') {
    document.documentElement.classList.add("dark");
  };
  modeSwitch.addEventListener("click", function () {
    document.documentElement.classList.toggle("dark");
    if(document.documentElement.contain('dark')) {
      localStorage.setItem('theme', 'dark');
    }else {
      localStorage.setItem('theme', '');
    }
    modeSwitch.classList.toggle("active");
});</code></pre>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

켠켠
4년 전
답변감사합니다. 이 코드도 새로고침하거나 페이지를 이동하게되면 다크모드가 풀리네요.. 조금 더 찾아볼게요. 감사합니다 :)
볼피드
4년 전
중간 비교문이 일부 오타가 있네요
document.documentElement.classList.contains로 수정하면 정상동작 될듯 하네요
켠켠
4년 전
감사합니다! 저도 오타를 발견못했네요.. 고수님 감사합니다 :) 좋은밤 보내세요!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인