|
|
|
|
|
document.addEventListener('DOMContentLoaded', () => { |
|
|
const sections = document.querySelectorAll('section'); |
|
|
|
|
|
const observer = new IntersersectionObserver((entries) => { |
|
|
entries.forEach(entry => { |
|
|
if (entry.isIntersecting) { |
|
|
entry.target.classList.add('visible'); |
|
|
} |
|
|
}); |
|
|
}, { |
|
|
threshold: 0.1, |
|
|
rootMargin: '0px 0px -50px 0px' |
|
|
}); |
|
|
|
|
|
sections.forEach(section => { |
|
|
observer.observe(section); |
|
|
}); |
|
|
|
|
|
|
|
|
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' |
|
|
}); |
|
|
} |
|
|
}); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
document.querySelector('form')?.addEventListener('submit', (e) => { |
|
|
e.preventDefault(); |
|
|
|
|
|
const name = document.getElementById('name').value; |
|
|
const email = document.getElementById('email').value; |
|
|
const message = document.getElementById('message').value; |
|
|
|
|
|
if (!name || !email || !message) { |
|
|
alert('Please fill all fields'); |
|
|
return; |
|
|
} |
|
|
|
|
|
|
|
|
console.log('Form submitted:', { name, email, message }); |
|
|
alert('Message sent securely! I will contact you soon.'); |
|
|
e.target.reset(); |
|
|
}); |