Winiry/math-o-s-dark-code-cave
0
1// Intersection Observer for section animations2const observer = new IntersectionObserver((entries) => {3 entries.forEach(entry => {4 if (entry.isIntersecting) {5 entry.target.classList.add('visible');6 }7 });8}, {9 threshold: 0.110});11 12document.querySelectorAll('section').forEach(section => {13 observer.observe(section);14});15 16// Smooth scroll for anchor links17document.querySelectorAll('a[href^="#"]').forEach(anchor => {18 anchor.addEventListener('click', function (e) {19 e.preventDefault();20 21 const targetId = this.getAttribute('href');22 if (targetId === '#') return;23 24 const targetElement = document.querySelector(targetId);25 if (targetElement) {26 window.scrollTo({27 top: targetElement.offsetTop - 80,28 behavior: 'smooth'29 });30 }31 });32});33 34// Dark mode toggle (if needed in future)35const darkModeToggle = document.getElementById('darkModeToggle');36if (darkModeToggle) {37 darkModeToggle.addEventListener('click', () => {38 document.documentElement.classList.toggle('dark');39 localStorage.setItem('darkMode', document.documentElement.classList.contains('dark'));40 });41}42 43// Check for saved dark mode preference44if (localStorage.getItem('darkMode') === 'false') {45 document.documentElement.classList.remove('dark');46}