53 lines
1.6 KiB
JavaScript
53 lines
1.6 KiB
JavaScript
|
|
document.addEventListener('DOMContentLoaded', function () {
|
|
// Navbar shrink on scroll
|
|
const navbar = document.querySelector('.navbar');
|
|
if (navbar) {
|
|
window.addEventListener('scroll', () => {
|
|
if (window.scrollY > 50) {
|
|
navbar.classList.add('navbar-sticky');
|
|
} else {
|
|
navbar.classList.remove('navbar-sticky');
|
|
}
|
|
});
|
|
}
|
|
|
|
// Smooth scroll for anchor links
|
|
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
|
anchor.addEventListener('click', function (e) {
|
|
e.preventDefault();
|
|
document.querySelector(this.getAttribute('href')).scrollIntoView({
|
|
behavior: 'smooth'
|
|
});
|
|
});
|
|
});
|
|
|
|
// Contact form validation
|
|
const form = document.querySelector('#contactForm');
|
|
if (form) {
|
|
form.addEventListener('submit', function (e) {
|
|
let isValid = true;
|
|
const name = document.querySelector('#name');
|
|
const email = document.querySelector('#email');
|
|
const message = document.querySelector('#message');
|
|
|
|
if (name.value.trim() === '') {
|
|
isValid = false;
|
|
alert('Name is required.');
|
|
}
|
|
if (email.value.trim() === '' || !email.value.includes('@')) {
|
|
isValid = false;
|
|
alert('A valid email is required.');
|
|
}
|
|
if (message.value.trim() === '') {
|
|
isValid = false;
|
|
alert('Message is required.');
|
|
}
|
|
|
|
if (!isValid) {
|
|
e.preventDefault();
|
|
}
|
|
});
|
|
}
|
|
});
|