[英]Dark mode Icon not changed and not saved in local storage
我用我自己的黑暗主題制作了一個黑暗模式按鈕。 主題由本地存儲保存。 同樣,當我單擊按鈕時,它的圖標不會改變(月亮到太陽)。 但是如果我重新加載頁面,該站點仍處於黑暗模式,但按鈕圖標沒有改變。 所以這里有一個鏈接,如果你不明白我在說什么,它會向你展示問題。 codepen 演示還有我的代碼:
$(document).ready(function () { $('body').toggleClass(localStorage.toggled); $(".darkmode-btn").on("click", function(){ if (localStorage.toggled != 'dark') { $('body').toggleClass('dark', true); localStorage.toggled = "dark"; } else { $('body').toggleClass('dark', false); localStorage.toggled = ""; $(this).toggleClass("sun") } }); });
.dark{background-color: #222;} .darkmode-btn { height: 60px; line-height: 60px; color: #fff; text-align: center; font-size: 20px; margin-left: 20px; z-index: 100; cursor: pointer; background-color: #08f; } .darkmode-btn:before,.darkmode-btn.moon:before,.darkmode-btn.sun:before { font-family: "fontawesome"; } .darkmode-btn:before { content: '\\f186'; } .darkmode-btn.moon:before { content: '\\f186'; } .darkmode-btn.sun:before { content: '\\f185'; }
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <body> <div class="darkmode-btn"> </div> </body>
$(".darkmode-btn").on("click", function(){
if (localStorage.toggled != 'dark') {
$('body').toggleClass('dark', true);
localStorage.toggled = "dark";
$(this).addClass("moon").removeClass("sun")
} else {
$('body').toggleClass('dark', false);
localStorage.toggled = "";
//$(this).toggleClass("sun").removeClass("sun")
$(this).addClass("sun").removeClass("moon")
}
});
});
這應該對你有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.