toggleable crt effect (accessibility)! (also better mobile support)
This commit is contained in:
parent
a2eec46ae4
commit
0369773a6e
7 changed files with 113 additions and 21 deletions
45
public/script/accessibility.js
Normal file
45
public/script/accessibility.js
Normal file
|
@ -0,0 +1,45 @@
|
|||
const accessibility = JSON.parse(localStorage.getItem("accessibility"));
|
||||
|
||||
function toggle_accessibility_setting(name) {
|
||||
if (accessibility[name]) {
|
||||
delete accessibility[name];
|
||||
update_accessibility();
|
||||
return true;
|
||||
}
|
||||
accessibility[name] = true;
|
||||
update_accessibility();
|
||||
return true;
|
||||
}
|
||||
|
||||
function set_accessibility_setting(name, value) {
|
||||
accessibility[name] = value;
|
||||
update_accessibility();
|
||||
return true;
|
||||
}
|
||||
|
||||
function clear_accessibility_setting(name) {
|
||||
if (!accessibility[name]) return false;
|
||||
delete accessibility[name];
|
||||
update_accessibility();
|
||||
return true;
|
||||
}
|
||||
|
||||
function update_accessibility() {
|
||||
localStorage.setItem("accessibility", JSON.stringify(accessibility));
|
||||
}
|
||||
|
||||
if (accessibility) {
|
||||
if (accessibility.disable_crt) {
|
||||
document.querySelector('div#overlay').setAttribute("hidden", true);
|
||||
document.body.style.textShadow = "none";
|
||||
document.getElementById('toggle-crt').classList.add("active");
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById("toggle-crt").addEventListener("click", () => {
|
||||
toggle_accessibility_setting("disable_crt");
|
||||
document.querySelector('div#overlay').toggleAttribute("hidden");
|
||||
document.body.style.textShadow = accessibility.disable_crt ? "none" : null;
|
||||
document.getElementById('toggle-crt').classList.toggle("active");
|
||||
});
|
||||
|
|
@ -1,20 +1,3 @@
|
|||
document.addEventListener("DOMContentLoaded", () => {
|
||||
[...document.querySelectorAll("h1, h2, h3, h4, h5, h6")]
|
||||
.filter((e) => e.innerText != "")
|
||||
.forEach((e) => {
|
||||
type_out(e);
|
||||
});
|
||||
[...document.querySelectorAll("ol, ul")]
|
||||
.filter((e) => e.innerText != "")
|
||||
.forEach((e) => {
|
||||
fill_list(e);
|
||||
});
|
||||
setTimeout(() => {
|
||||
document.querySelector("footer").style.display = "none";
|
||||
document.querySelector("footer").style.display = null;
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
function type_out(e) {
|
||||
const text = e.innerText;
|
||||
const original = e.innerHTML;
|
||||
|
@ -57,3 +40,15 @@ function fill_list(list) {
|
|||
item.style.animationPlayState = "playing";
|
||||
});
|
||||
}
|
||||
|
||||
[...document.querySelectorAll("h1, h2, h3, h4, h5, h6")]
|
||||
.filter((e) => e.innerText != "")
|
||||
.forEach((e) => {
|
||||
type_out(e);
|
||||
});
|
||||
[...document.querySelectorAll("ol, ul")]
|
||||
.filter((e) => e.innerText != "")
|
||||
.forEach((e) => {
|
||||
fill_list(e);
|
||||
});
|
||||
|
||||
|
|
Reference in a new issue