| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- document.addEventListener('DOMContentLoaded', () => {
- // --- 交互功能1: 响应式汉堡菜单 ---
- const hamburgerMenu = document.getElementById('hamburger-menu');
- const mainNav = document.querySelector('.main-nav');
- if (hamburgerMenu && mainNav) {
- hamburgerMenu.addEventListener('click', () => {
- mainNav.classList.toggle('active');
- });
- }
- // --- 交互功能2 (进阶): 白天/黑夜模式切换 ---
- const themeSwitcher = document.getElementById('theme-switcher');
- const body = document.body;
- const currentTheme = localStorage.getItem('theme');
- if (currentTheme === 'dark') {
- body.classList.add('dark-mode');
- if (themeSwitcher) themeSwitcher.textContent = '🌙';
- } else {
- if (themeSwitcher) themeSwitcher.textContent = '☀️';
- }
- if (themeSwitcher) {
- themeSwitcher.addEventListener('click', () => {
- body.classList.toggle('dark-mode');
- if (body.classList.contains('dark-mode')) {
- localStorage.setItem('theme', 'dark');
- themeSwitcher.textContent = '🌙';
- } else {
- localStorage.setItem('theme', 'light');
- themeSwitcher.textContent = '☀️';
- }
- });
- }
- // --- 交互功能3 (进阶): 联系表单异步提交 (配合PHP) ---
- const contactForm = document.getElementById('contact-form');
- if (contactForm) {
- contactForm.addEventListener('submit', function(event) {
- event.preventDefault();
- let statusDiv = this.querySelector('.form-status');
- if (!statusDiv) {
- statusDiv = document.createElement('div');
- statusDiv.className = 'form-status';
- this.appendChild(statusDiv);
- }
- const formData = new FormData(this);
- fetch('handle_contact.php', { method: 'POST', body: formData })
- .then(response => response.text().then(text => ({ ok: response.ok, text })))
- .then(({ ok, text }) => {
- statusDiv.textContent = text;
- statusDiv.style.color = ok ? 'green' : 'red';
- if (ok) contactForm.reset();
- })
- .catch(error => {
- statusDiv.textContent = '提交失败,请检查网络连接。';
- statusDiv.style.color = 'red';
- });
- });
- }
- // --- 交互功能4 (进阶): 自动播放轮播图 ---
- const carousel = document.querySelector('.carousel');
- if (carousel) {
- const items = carousel.querySelectorAll('.carousel-item');
- const prevBtn = carousel.querySelector('.carousel-control.prev');
- const nextBtn = carousel.querySelector('.carousel-control.next');
- let currentIndex = 0;
- let intervalId = null;
- if (items.length > 1) {
- const showItem = (index) => items.forEach((item, i) => item.classList.toggle('active', i === index));
- const nextItem = () => { currentIndex = (currentIndex + 1) % items.length; showItem(currentIndex); };
- const prevItem = () => { currentIndex = (currentIndex - 1 + items.length) % items.length; showItem(currentIndex); };
- const startCarousel = () => { stopCarousel(); intervalId = setInterval(nextItem, 3000); };
- const stopCarousel = () => clearInterval(intervalId);
- if (nextBtn) nextBtn.addEventListener('click', () => { nextItem(); startCarousel(); });
- if (prevBtn) prevBtn.addEventListener('click', () => { prevItem(); startCarousel(); });
- carousel.addEventListener('mouseenter', stopCarousel);
- carousel.addEventListener('mouseleave', startCarousel);
- showItem(currentIndex);
- startCarousel();
- }
- }
- });
|