/* 首页通用交互样式 */ /* 滚动时导航栏样式 */ .navbar-scrolled { background-color: rgba(255, 255, 255, 0.95) !important; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); backdrop-filter: blur(10px); } .navbar-scrolled .navbar-brand, .navbar-scrolled .nav-link { color: #333 !important; } .navbar-scrolled .navbar-toggler-icon { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.7)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important; } /* 滚动动画效果 */ .feature-card, .hero-content { opacity: 0; transform: translateY(20px); transition: opacity 0.6s ease, transform 0.6s ease; } .feature-card.animate-in, .hero-content.animate-in { opacity: 1; transform: translateY(0); } /* 返回顶部按钮 */ #backToTop { position: fixed; bottom: 30px; right: 30px; width: 50px; height: 50px; background-color: #4e73df; color: white; border: none; border-radius: 50%; cursor: pointer; opacity: 0; visibility: hidden; transition: all 0.3s ease; z-index: 1000; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; box-shadow: 0 4px 15px rgba(78, 115, 223, 0.3); } #backToTop:hover { background-color: #2e59d9; transform: translateY(-3px); box-shadow: 0 6px 20px rgba(78, 115, 223, 0.4); } #backToTop.show { opacity: 1; visibility: visible; } /* 通知样式 */ .notification { position: fixed; top: 20px; right: 20px; padding: 15px 20px; border-radius: 8px; background-color: white; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); z-index: 9999; opacity: 0; transform: translateX(100%); transition: opacity 0.3s ease, transform 0.3s ease; max-width: 350px; display: flex; align-items: center; } .notification.show { opacity: 1; transform: translateX(0); } .notification-content { display: flex; align-items: center; gap: 10px; } .notification i { font-size: 1.2rem; } .notification-success { border-left: 4px solid #1cc88a; } .notification-success i { color: #1cc88a; } .notification-error { border-left: 4px solid #e74a3b; } .notification-error i { color: #e74a3b; } .notification-info { border-left: 4px solid #36b9cc; } .notification-info i { color: #36b9cc; } /* 移动端菜单优化 */ @media (max-width: 991.98px) { .navbar-collapse { background-color: white; padding: 20px; border-radius: 8px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); margin-top: 10px; } .navbar-nav .nav-link { padding: 10px 15px; border-radius: 4px; margin-bottom: 5px; } .navbar-nav .nav-link:hover { background-color: #f8f9fc; } } /* 平滑滚动优化 */ html { scroll-behavior: smooth; } /* 当前页面高亮 */ .nav-link.active { color: #4e73df !important; font-weight: 600; } .nav-link.active::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 100%; height: 2px; background-color: #4e73df; border-radius: 2px; } /* 按钮悬停效果增强 */ .btn { transition: all 0.3s ease; } .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); } /* 卡片悬停效果 */ .feature-card { transition: all 0.3s ease; } .feature-card:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); } /* 加载动画 */ .loading-spinner { display: inline-block; width: 20px; height: 20px; border: 3px solid rgba(255, 255, 255, 0.3); border-radius: 50%; border-top-color: white; animation: spin 1s ease-in-out infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* 响应式调整 */ @media (max-width: 768px) { #backToTop { bottom: 20px; right: 20px; width: 45px; height: 45px; } .notification { left: 20px; right: 20px; max-width: none; } }