import "./header.js"; import "./config.js"; function type_out(e) { const text = e.innerText; const original = e.innerHTML; const delay = 25; let chars = 0; function insert_char(character, parent) { if (chars == 0) parent.innerHTML = ""; const c = document.createElement("span"); c.innerText = character; parent.appendChild(c); c.classList.add("newchar"); } function normalize() { e.innerHTML = original; } function increment_char() { const newchar = text.substring(chars, chars + 1); insert_char(newchar, e); chars++; if (chars <= text.length) { setTimeout(increment_char, delay); } else { setTimeout(normalize, 250); } } increment_char(); } function fill_list(list) { const items = list.querySelectorAll("li a, li span"); items.innerText = ""; const delay = 100; items.forEach((item, iter) => { item.style.animationDelay = `${iter * delay}ms`; item.style.animationPlayState = "playing"; }); } document.addEventListener("DOMContentLoaded", () => { [...document.querySelectorAll(".typeout")] .filter((e) => e.innerText != "") .forEach((e) => { type_out(e); console.log(e); }); [...document.querySelectorAll("ol, ul")] .filter((e) => e.innerText != "") .forEach((e) => { fill_list(e); }); const top_button = document.getElementById("backtotop"); window.onscroll = () => { if (!top_button) return; const btt_threshold = 100; if ( document.body.scrollTop > btt_threshold || document.documentElement.scrollTop > btt_threshold ) { top_button.classList.add("active"); } else { top_button.classList.remove("active"); } } });