| |
| document.addEventListener('DOMContentLoaded', function() { |
| |
| const mobileMenuButton = document.getElementById('mobile-menu-button'); |
| const mobileMenu = document.getElementById('mobile-menu'); |
| |
| if (mobileMenuButton && mobileMenu) { |
| mobileMenuButton.addEventListener('click', function() { |
| mobileMenu.classList.toggle('hidden'); |
| |
| |
| const icon = mobileMenuButton.querySelector('i'); |
| if (mobileMenu.classList.contains('hidden')) { |
| icon.classList.remove('fa-times'); |
| icon.classList.add('fa-bars'); |
| } else { |
| icon.classList.remove('fa-bars'); |
| icon.classList.add('fa-times'); |
| } |
| }); |
| } |
| |
| |
| const navLinks = document.querySelectorAll('a[href^="#"]'); |
| navLinks.forEach(link => { |
| link.addEventListener('click', function(e) { |
| const targetId = this.getAttribute('href'); |
| if (targetId === '#') return; |
| |
| |
| if (targetId.startsWith('#')) { |
| e.preventDefault(); |
| |
| const targetElement = document.querySelector(targetId); |
| if (targetElement) { |
| |
| if (mobileMenu && !mobileMenu.classList.contains('hidden')) { |
| mobileMenu.classList.add('hidden'); |
| const icon = mobileMenuButton.querySelector('i'); |
| icon.classList.remove('fa-times'); |
| icon.classList.add('fa-bars'); |
| } |
| |
| window.scrollTo({ |
| top: targetElement.offsetTop - 80, |
| behavior: 'smooth' |
| }); |
| } |
| } |
| }); |
| }); |
| |
| |
| const backToTopButton = document.getElementById('back-to-top'); |
| |
| |
| window.addEventListener('scroll', function() { |
| if (backToTopButton) { |
| if (window.scrollY > 300) { |
| backToTopButton.classList.remove('hidden'); |
| } else { |
| backToTopButton.classList.add('hidden'); |
| } |
| } |
| }); |
| |
| |
| if (backToTopButton) { |
| backToTopButton.addEventListener('click', function() { |
| window.scrollTo({ |
| top: 0, |
| behavior: 'smooth' |
| }); |
| }); |
| } |
| |
| |
| const contactForm = document.getElementById('contact-form'); |
| if (contactForm) { |
| contactForm.addEventListener('submit', function(e) { |
| e.preventDefault(); |
| |
| |
| const name = document.getElementById('name').value; |
| const email = document.getElementById('email').value; |
| const subject = document.getElementById('subject').value; |
| const message = document.getElementById('message').value; |
| |
| |
| if (!name || !email || !subject || !message) { |
| alert('请填写所有必填字段'); |
| return; |
| } |
| |
| |
| |
| alert(`感谢您,${name}!您的消息已成功发送。我们会尽快通过 ${email} 与您联系。`); |
| |
| |
| contactForm.reset(); |
| }); |
| } |
| |
| |
| const featureCards = document.querySelectorAll('.feature-card'); |
| |
| featureCards.forEach(card => { |
| card.addEventListener('mouseenter', function() { |
| this.style.transition = 'transform 0.3s ease, box-shadow 0.3s ease'; |
| this.style.boxShadow = '0 20px 40px rgba(0, 0, 0, 0.1)'; |
| }); |
| |
| card.addEventListener('mouseleave', function() { |
| this.style.boxShadow = ''; |
| }); |
| }); |
| |
| |
| const yearElement = document.querySelector('footer p'); |
| if (yearElement && yearElement.textContent.includes('2023')) { |
| const currentYear = new Date().getFullYear(); |
| yearElement.textContent = yearElement.textContent.replace('2023', currentYear); |
| } |
| |
| |
| setTimeout(() => { |
| document.body.classList.add('loaded'); |
| }, 100); |
| }); |
|
|
| |
| window.addEventListener('load', function() { |
| |
| const nav = document.querySelector('nav'); |
| |
| window.addEventListener('scroll', function() { |
| if (window.scrollY > 50) { |
| nav.classList.add('shadow-lg'); |
| nav.classList.remove('nav-shadow'); |
| } else { |
| nav.classList.remove('shadow-lg'); |
| nav.classList.add('nav-shadow'); |
| } |
| }); |
| }); |