bvvyas/aie-roadmap-navigator
0
1// Main JavaScript file for shared functionality2document.addEventListener('DOMContentLoaded', () => {3 // Intersection Observer for animations4 const animateOnScroll = () => {5 const elements = document.querySelectorAll('.fade-in');6 7 const observer = new IntersectionObserver((entries) => {8 entries.forEach(entry => {9 if (entry.isIntersecting) {10 entry.target.style.opacity = 1;11 entry.target.style.transform = 'translateY(0)';12 observer.unobserve(entry.target);13 }14 });15 }, { threshold: 0.1 });16 17 elements.forEach(element => {18 element.style.opacity = 0;19 element.style.transform = 'translateY(20px)';20 observer.observe(element);21 });22 };23 24 animateOnScroll();25});26 27// Theme management28const toggleTheme = () => {29 const html = document.documentElement;30 html.classList.toggle('dark');31 localStorage.setItem('theme', html.classList.contains('dark') ? 'dark' : 'light');32};33 34// Check for saved theme preference35const checkTheme = () => {36 const savedTheme = localStorage.getItem('theme') || 'light';37 if (savedTheme === 'dark') {38 document.documentElement.classList.add('dark');39 }40};41 42// Initialize theme43checkTheme();