mirror of https://github.com/kortix-ai/suna.git
61 lines
2.3 KiB
JavaScript
61 lines
2.3 KiB
JavaScript
|
document.addEventListener('DOMContentLoaded', () => {
|
||
|
const mobileNavToggle = document.querySelector('.mobile-nav-toggle');
|
||
|
const navLinks = document.querySelector('.nav-links');
|
||
|
const header = document.querySelector('.header');
|
||
|
let lastScroll = 0;
|
||
|
|
||
|
mobileNavToggle.addEventListener('click', () => {
|
||
|
navLinks.classList.toggle('active');
|
||
|
const spans = mobileNavToggle.querySelectorAll('span');
|
||
|
spans[0].style.transform = navLinks.classList.contains('active') ? 'rotate(45deg) translate(8px, 8px)' : '';
|
||
|
spans[1].style.opacity = navLinks.classList.contains('active') ? '0' : '1';
|
||
|
spans[2].style.transform = navLinks.classList.contains('active') ? 'rotate(-45deg) translate(7px, -7px)' : '';
|
||
|
});
|
||
|
|
||
|
window.addEventListener('scroll', () => {
|
||
|
const currentScroll = window.pageYOffset;
|
||
|
|
||
|
if (currentScroll <= 0) {
|
||
|
header.style.transform = 'translateY(0)';
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (currentScroll > lastScroll && !header.classList.contains('scroll-down')) {
|
||
|
header.style.transform = 'translateY(-100%)';
|
||
|
} else if (currentScroll < lastScroll && header.classList.contains('scroll-down')) {
|
||
|
header.style.transform = 'translateY(0)';
|
||
|
}
|
||
|
|
||
|
lastScroll = currentScroll;
|
||
|
});
|
||
|
|
||
|
const observerOptions = {
|
||
|
threshold: 0.1,
|
||
|
rootMargin: '0px 0px -50px 0px'
|
||
|
};
|
||
|
|
||
|
const observer = new IntersectionObserver((entries) => {
|
||
|
entries.forEach(entry => {
|
||
|
if (entry.isIntersecting) {
|
||
|
entry.target.style.opacity = '1';
|
||
|
entry.target.style.transform = 'translateY(0)';
|
||
|
}
|
||
|
});
|
||
|
}, observerOptions);
|
||
|
|
||
|
document.querySelectorAll('section').forEach(section => {
|
||
|
section.style.opacity = '0';
|
||
|
section.style.transform = 'translateY(20px)';
|
||
|
section.style.transition = 'opacity 0.6s ease-out, transform 0.6s ease-out';
|
||
|
observer.observe(section);
|
||
|
});
|
||
|
|
||
|
const form = document.querySelector('.contact-form');
|
||
|
form.addEventListener('submit', (e) => {
|
||
|
e.preventDefault();
|
||
|
const formData = new FormData(form);
|
||
|
const data = Object.fromEntries(formData);
|
||
|
console.log('Form submitted:', data);
|
||
|
form.reset();
|
||
|
});
|
||
|
});
|