-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
39 lines (34 loc) · 1.22 KB
/
script.js
File metadata and controls
39 lines (34 loc) · 1.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Mobile nav toggle
const navToggleButton = document.querySelector('.nav-toggle');
const siteNav = document.querySelector('.site-nav');
if (navToggleButton && siteNav) {
navToggleButton.addEventListener('click', () => {
const isOpen = navToggleButton.getAttribute('aria-expanded') === 'true';
navToggleButton.setAttribute('aria-expanded', String(!isOpen));
siteNav.classList.toggle('open');
});
}
// Close nav when clicking a link (mobile)
siteNav?.querySelectorAll('a[href^="#"]').forEach((link) => {
link.addEventListener('click', () => {
if (siteNav.classList.contains('open')) {
siteNav.classList.remove('open');
navToggleButton?.setAttribute('aria-expanded', 'false');
}
});
});
// Set current year in footer
const yearSpan = document.getElementById('year');
if (yearSpan) {
yearSpan.textContent = String(new Date().getFullYear());
}
// Basic client-side form guard (no backend)
const form = document.querySelector('.contact-form');
form?.addEventListener('submit', (e) => {
const name = document.getElementById('name');
const email = document.getElementById('email');
if (!name?.value || !email?.value) {
e.preventDefault();
alert('Please provide your name and email.');
}
});