document.addEventListener('DOMContentLoaded', () => { // Smooth scrolling for anchor links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); const targetId = this.getAttribute('href'); if (targetId === '#') return; const targetElement = document.querySelector(targetId); if (targetElement) { targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }); }); // Add fade-in animation to sections as they come into view const sections = document.querySelectorAll('section'); const observerOptions = { threshold: 0.1, rootMargin: '0px 0px -50px 0px' }; const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('fade-in'); observer.unobserve(entry.target); } }); }, observerOptions); sections.forEach(section => { observer.observe(section); }); // Form submission handler const contactForm = document.querySelector('#contact form'); if (contactForm) { contactForm.addEventListener('submit', (e) => { e.preventDefault(); // Here you would typically send the form data to a server alert('Thank you for your message! I will get back to you soon.'); contactForm.reset(); }); } });