change html
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
(function () {
|
||||
var STORAGE_KEY = "zhihua-theme-mode";
|
||||
var MODES = ["auto", "light", "dark"];
|
||||
|
||||
function normalize(mode) {
|
||||
return MODES.indexOf(mode) >= 0 ? mode : "auto";
|
||||
}
|
||||
|
||||
function readMode() {
|
||||
try {
|
||||
return normalize(localStorage.getItem(STORAGE_KEY));
|
||||
} catch (error) {
|
||||
return "auto";
|
||||
}
|
||||
}
|
||||
|
||||
function applyMode(mode) {
|
||||
var normalized = normalize(mode);
|
||||
document.documentElement.setAttribute("data-theme", normalized);
|
||||
try {
|
||||
localStorage.setItem(STORAGE_KEY, normalized);
|
||||
} catch (error) {
|
||||
/* ignore */
|
||||
}
|
||||
updateButtons(normalized);
|
||||
}
|
||||
|
||||
function updateButtons(mode) {
|
||||
document.querySelectorAll("[data-theme-mode]").forEach(function (button) {
|
||||
var active = button.getAttribute("data-theme-mode") === mode;
|
||||
button.classList.toggle("active", active);
|
||||
button.setAttribute("aria-pressed", active ? "true" : "false");
|
||||
});
|
||||
}
|
||||
|
||||
function bindControls() {
|
||||
document.querySelectorAll("[data-theme-mode]").forEach(function (button) {
|
||||
button.addEventListener("click", function () {
|
||||
applyMode(button.getAttribute("data-theme-mode"));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
applyMode(readMode());
|
||||
document.addEventListener("DOMContentLoaded", bindControls);
|
||||
})();
|
||||
Reference in New Issue
Block a user