30859-vm/assets/js/main.js
2025-09-11 13:42:29 +00:00

52 lines
1.3 KiB
JavaScript

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);
});
});