mirror of
https://codeberg.org/Kankys/NewLukasBlog.git
synced 2026-11-11 22:14:36 +01:00
- Sjednoceny všechny relativní cesty na absolutní (od kořene /web/) - Přidáno loading="lazy" pro všechny obrázky pod foldem - Vytvořeny minifikované verze: - web/js/min/shared.min.js (125 → 3 řádky) - web/css/min/shared.min.css - web/css/min/variables.min.css - Přidány dev dependencies: cssnano, terser - Vytvořen minify.js skript pro budoucí minifikaci Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
1 line
1.6 KiB
JavaScript
1 line
1.6 KiB
JavaScript
function setupMobileMenu(){const e=document.querySelector(".menu-icon"),t=document.querySelector("nav"),o=document.querySelector(".fa-solid");e&&o&&t&&e.addEventListener("click",()=>{o.classList.contains("fa-bars")?(o.classList.add("fa-xmark"),o.classList.remove("fa-bars"),t.style.display="block"):(o.classList.add("fa-bars"),o.classList.remove("fa-xmark"),t.style.display="none")})}function scrollToTop(){document.body.scrollTop=0,document.documentElement.scrollTop=0}function setupScrollToTopButton(e="scrollToTopBtn"){const t=document.getElementById(e);t&&(window.onscroll=function(){document.body.scrollTop>20||document.documentElement.scrollTop>20?t.style.display="block":t.style.display="none"})}function setupThemeToggle(e={}){const t={toggleButtonId:"toggleButton",storageKey:"themePreference",defaultTheme:"dark",...e},o=document.getElementById(t.toggleButtonId);if(!o)return;let n="dark"===(localStorage.getItem(t.storageKey)||t.defaultTheme);n?document.body.classList.add("dark-theme"):document.body.classList.remove("dark-theme"),o.addEventListener("click",function(){n=!n,n?(document.body.classList.add("dark-theme"),localStorage.setItem(t.storageKey,"dark")):(document.body.classList.remove("dark-theme"),localStorage.setItem(t.storageKey,"light")),t.onToggle&&t.onToggle(n)})}function setupImageZoom(e=".picture",t=2.2){document.querySelectorAll(e).forEach((e,o)=>{e.addEventListener("mouseenter",()=>{e.style.transform=`scale(${t})`}),e.addEventListener("mouseleave",()=>{e.style.transform="scale(1)"})})}document.addEventListener("DOMContentLoaded",function(){setupMobileMenu(),setupScrollToTopButton(),setupThemeToggle(),setupImageZoom()}); |