document.addEventListener('DOMContentLoaded', () => { "use strict"; /** * Navbar shrink on scroll */ const navbar = document.querySelector('.navbar'); if (navbar) { const handleScroll = () => { if (window.scrollY > 50) { navbar.classList.add('scrolled'); } else { navbar.classList.remove('scrolled'); } }; window.addEventListener('scroll', handleScroll); handleScroll(); // Initial check } /** * Smooth scroll for anchor links */ document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); const targetId = this.getAttribute('href'); const targetElement = document.querySelector(targetId); if(targetElement){ targetElement.scrollIntoView({ behavior: 'smooth' }); } }); }); /** * Bootstrap form validation */ const forms = document.querySelectorAll('.needs-validation'); Array.prototype.slice.call(forms).forEach(function (form) { form.addEventListener('submit', function (event) { if (!form.checkValidity()) { event.preventDefault(); event.stopPropagation(); } form.classList.add('was-validated'); }, false); }); });