// 主要JavaScript功能 document.addEventListener('DOMContentLoaded', function() { // 初始化所有功能 initCardAnimations(); initExternalLinks(); initTooltips(); }); /** * 卡片动画效果 */ function initCardAnimations() { const cards = document.querySelectorAll('.site-card'); cards.forEach((card, index) => { // 添加延迟动画效果 card.style.animationDelay = `${index * 0.05}s`; // 点击卡片查看详情 card.addEventListener('click', function(e) { // 如果点击的是按钮,不触发卡片点击 if (e.target.tagName === 'A' || e.target.closest('a')) { return; } // 找到"查看详情"按钮并触发点击 const detailBtn = card.querySelector('a[href*="site_detail"]'); if (detailBtn) { window.location.href = detailBtn.href; } }); }); } /** * 外部链接处理 */ function initExternalLinks() { const externalLinks = document.querySelectorAll('a[target="_blank"]'); externalLinks.forEach(link => { // 添加安全属性 link.setAttribute('rel', 'noopener noreferrer'); // 添加点击统计(可选) link.addEventListener('click', function() { console.log('External link clicked:', this.href); // 这里可以添加统计代码 }); }); } /** * 初始化Bootstrap提示框 */ function initTooltips() { const tooltipTriggerList = [].slice.call( document.querySelectorAll('[data-bs-toggle="tooltip"]') ); tooltipTriggerList.map(function(tooltipTriggerEl) { return new bootstrap.Tooltip(tooltipTriggerEl); }); } /** * 平滑滚动到顶部 */ function scrollToTop() { window.scrollTo({ top: 0, behavior: 'smooth' }); } /** * 显示加载动画 */ function showLoading() { const loader = document.createElement('div'); loader.id = 'loading'; loader.className = 'loading-overlay'; loader.innerHTML = '
'; document.body.appendChild(loader); } /** * 隐藏加载动画 */ function hideLoading() { const loader = document.getElementById('loading'); if (loader) { loader.remove(); } } /** * 显示通知消息 */ function showNotification(message, type = 'info') { const alert = document.createElement('div'); alert.className = `alert alert-${type} alert-dismissible fade show position-fixed top-0 start-50 translate-middle-x mt-3`; alert.style.zIndex = '9999'; alert.innerHTML = ` ${message} `; document.body.appendChild(alert); // 3秒后自动关闭 setTimeout(() => { alert.remove(); }, 3000); } // 导出函数供全局使用 window.scrollToTop = scrollToTop; window.showLoading = showLoading; window.hideLoading = hideLoading; window.showNotification = showNotification;