boxmoe_header_banner_img

Hello! 欢迎来到众归云!

文章导读

众归云登陆页头部代码优化


avatar
王道 2026年5月31日 16

<!DOCTYPE html>
<html lang=”zh-CN”>
<head>
<meta charset=”UTF-8″>
<meta name=”viewport” content=”width=device-width, initial-scale=1.0″>
<title>CloudPlus – 云服务头部导航</title>
<link rel=”stylesheet” href=”https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css”>
<style>
/* ==================== CSS Reset (仅作用于 header 内部) ==================== */
.header *,
.header *::before,
.header *::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}

/* ==================== 头部容器 ==================== */
.header {
position: sticky;
top: 0;
width: 100%;
background: rgba(10, 26, 47, 0.95);
backdrop-filter: blur(10px);
z-index: 1000;
transition: box-shadow 0.3s ease;
font-family: -apple-system, BlinkMacSystemFont, ‘Segoe UI’, Roboto, ‘Helvetica Neue’, Arial, sans-serif;
}

.header.scrolled {
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.header a {
text-decoration: none;
}

.header .header-container {
display: flex;
align-items: center;
justify-content: space-between;
max-width: 1400px;
margin: 0 auto;
padding: 0 40px;
height: 70px;
}

/* ==================== Logo 区域 ==================== */
.header .logo {
display: flex;
flex-direction: column;
}

.header .logo-brand {
font-size: 24px;
font-weight: 700;
color: #fff;
display: flex;
align-items: center;
gap: 10px;
}

.header .logo-brand i {
color: #2a8bf2;
font-size: 28px;
}

.header .logo-slogan {
font-size: 11px;
color: rgba(255, 255, 255, 0.6);
letter-spacing: 0.5px;
margin-top: 2px;
}

/* ==================== 导航菜单 ==================== */
.header .nav {
display: flex;
align-items: center;
gap: 8px;
}

.header .nav-item {
position: relative;
}

.header .nav-link {
display: block;
padding: 10px 16px;
color: rgba(255, 255, 255, 0.85);
font-size: 14px;
font-weight: 500;
border-radius: 6px;
transition: all 0.25s ease;
position: relative;
}

.header .nav-link::after {
content: ”;
position: absolute;
bottom: 6px;
left: 16px;
right: 16px;
height: 2px;
background: #2a8bf2;
transform: scaleX(0);
transition: transform 0.25s ease;
}

.header .nav-link:hover {
color: #fff;
background: rgba(42, 139, 242, 0.15);
}

.header .nav-link:hover::after {
transform: scaleX(1);
}

/* 下拉菜单触发器 */
.header .has-dropdown > .nav-link {
padding-right: 32px;
}

.header .has-dropdown > .nav-link::before {
content: ‘\f107’;
font-family: ‘Font Awesome 6 Free’;
font-weight: 900;
position: absolute;
right: 12px;
top: 50%;
transform: translateY(-50%);
font-size: 12px;
opacity: 0.7;
transition: transform 0.25s ease;
}

.header .has-dropdown:hover > .nav-link::before {
transform: translateY(-50%) rotate(180deg);
}

/* 下拉面板 */
.header .dropdown-panel {
position: absolute;
top: 100%;
left: 0;
min-width: 220px;
background: #fff;
border-radius: 8px;
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
opacity: 0;
visibility: hidden;
transform: translateY(10px);
transition: all 0.25s ease;
padding: 12px 0;
margin-top: 8px;
}

.header .has-dropdown:hover .dropdown-panel {
opacity: 1;
visibility: visible;
transform: translateY(0);
}

.header .dropdown-item {
display: block;
padding: 12px 20px;
color: #333;
font-size: 14px;
transition: all 0.2s ease;
border-left: 3px solid transparent;
}

.header .dropdown-item:hover {
background: #f5f9ff;
color: #2a8bf2;
border-left-color: #2a8bf2;
}

.header .dropdown-item i {
margin-right: 10px;
width: 16px;
color: #2a8bf2;
}

/* ==================== 右侧功能区 ==================== */
.header .header-actions {
display: flex;
align-items: center;
gap: 16px;
}

/* 搜索区域 */
.header .search-wrapper {
position: relative;
}

.header .search-icon {
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
background: transparent;
border: none;
color: rgba(255, 255, 255, 0.85);
cursor: pointer;
border-radius: 50%;
transition: all 0.25s ease;
font-size: 18px;
}

.header .search-icon:hover {
background: rgba(255, 255, 255, 0.1);
color: #fff;
}

.header .search-box {
position: absolute;
top: 50%;
right: 0;
transform: translateY(-50%);
opacity: 0;
visibility: hidden;
display: flex;
align-items: center;
background: #fff;
border-radius: 25px;
padding: 4px 4px 4px 16px;
min-width: 280px;
transition: all 0.3s ease;
}

.header .search-box.active {
opacity: 1;
visibility: visible;
right: 44px;
}

.header .search-box input {
border: none;
outline: none;
font-size: 14px;
flex: 1;
padding: 8px 0;
background: transparent;
color: #333;
}

.header .search-box input::placeholder {
color: #999;
}

.header .search-box .close-btn {
width: 32px;
height: 32px;
border: none;
background: #f0f0f0;
border-radius: 50%;
cursor: pointer;
color: #666;
display: flex;
align-items: center;
justify-content: center;
margin-left: 8px;
transition: all 0.2s ease;
}

.header .search-box .close-btn:hover {
background: #e0e0e0;
}

/* 分隔线 */
.header .divider {
width: 1px;
height: 24px;
background: rgba(255, 255, 255, 0.2);
}

/* 用户菜单 */
.header .user-menu {
position: relative;
}

.header .user-btn {
display: flex;
align-items: center;
gap: 8px;
padding: 8px 16px;
background: transparent;
border: 1px solid rgba(42, 139, 242, 0.5);
color: #2a8bf2;
border-radius: 6px;
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: all 0.25s ease;
}

.header .user-btn:hover {
background: rgba(42, 139, 242, 0.15);
border-color: #2a8bf2;
}

.header .user-btn i {
font-size: 16px;
}

.header .user-dropdown {
position: absolute;
top: 100%;
right: 0;
min-width: 180px;
background: #fff;
border-radius: 8px;
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
opacity: 0;
visibility: hidden;
transform: translateY(10px);
transition: all 0.25s ease;
padding: 12px 0;
margin-top: 8px;
}

.header .user-menu.active .user-dropdown {
opacity: 1;
visibility: visible;
transform: translateY(0);
}

.header .user-dropdown .dropdown-header {
padding: 12px 20px;
border-bottom: 1px solid #eee;
margin-bottom: 8px;
}

.header .user-dropdown .user-name {
font-weight: 600;
color: #333;
font-size: 14px;
}

.header .user-dropdown .user-email {
font-size: 12px;
color: #999;
margin-top: 2px;
}

/* 汉堡菜单 */
.header .mobile-toggle {
display: none;
flex-direction: column;
gap: 5px;
padding: 8px;
background: transparent;
border: none;
cursor: pointer;
}

.header .mobile-toggle span {
width: 24px;
height: 2px;
background: rgba(255, 255, 255, 0.9);
transition: all 0.3s ease;
border-radius: 2px;
}

.header .mobile-toggle.active span:nth-child(1) {
transform: rotate(45deg) translate(5px, 5px);
}

.header .mobile-toggle.active span:nth-child(2) {
opacity: 0;
}

.header .mobile-toggle.active span:nth-child(3) {
transform: rotate(-45deg) translate(5px, -5px);
}

/* ==================== 移动端响应式 ==================== */
.header .mobile-nav {
display: none;
position: fixed;
top: 70px;
left: 0;
right: 0;
bottom: 0;
background: rgba(10, 26, 47, 0.98);
backdrop-filter: blur(20px);
padding: 20px 40px;
overflow-y: auto;
opacity: 0;
visibility: hidden;
transition: all 0.3s ease;
}

.header .mobile-nav.active {
opacity: 1;
visibility: visible;
}

.header .mobile-nav-list {
list-style: none;
display: flex;
flex-direction: column;
gap: 8px;
}

.header .mobile-nav-link {
display: block;
padding: 16px 20px;
color: rgba(255, 255, 255, 0.85);
font-size: 16px;
font-weight: 500;
border-radius: 8px;
transition: all 0.25s ease;
}

.header .mobile-nav-link:hover {
background: rgba(42, 139, 242, 0.15);
color: #fff;
}

.header .mobile-nav-item {
list-style: none;
}

.header .mobile-nav-item.has-dropdown .mobile-submenu {
display: none;
list-style: none;
padding-left: 20px;
margin-top: 8px;
}

.header .mobile-nav-item.has-dropdown.open .mobile-submenu {
display: block;
}

.header .mobile-submenu .dropdown-item {
display: flex;
align-items: center;
padding: 12px 16px;
color: rgba(255, 255, 255, 0.7);
font-size: 14px;
}

.header .dropdown-toggle {
display: none;
background: transparent;
border: none;
color: rgba(255, 255, 255, 0.5);
cursor: pointer;
padding: 8px;
font-size: 14px;
}

@media (max-width: 1024px) {
.header .header-container {
padding: 0 24px;
}

.header .nav {
display: none;
}

.header .mobile-toggle {
display: flex;
}

.header .mobile-nav {
display: block;
}

.header .search-box {
right: 0;
}

.header .search-box.active {
right: 40px;
min-width: 240px;
}

.header .header-actions {
gap: 8px;
}
}

@media (max-width: 768px) {
.header .header-container {
padding: 0 16px;
height: 60px;
}

.header .logo-brand {
font-size: 20px;
}

.header .logo-slogan {
display: none;
}

.header .user-btn span {
display: none;
}

.header .search-box.active {
position: fixed;
top: 60px;
left: 16px;
right: 16px;
min-width: auto;
transform: none;
margin-top: 0;
z-index: 999;
}
}

/* ==================== Logo 区域 ==================== */
.logo {
display: flex;
flex-direction: column;
text-decoration: none;
}

.logo-brand {
font-size: 24px;
font-weight: 700;
color: #fff;
display: flex;
align-items: center;
gap: 10px;
}

.logo-brand i {
color: #2a8bf2;
font-size: 28px;
}

.logo-slogan {
font-size: 11px;
color: rgba(255, 255, 255, 0.6);
letter-spacing: 0.5px;
margin-top: 2px;
}

/* ==================== 导航菜单 ==================== */
.nav {
display: flex;
align-items: center;
gap: 8px;
}

.nav-item {
position: relative;
}

.nav-link {
display: block;
padding: 10px 16px;
color: rgba(255, 255, 255, 0.85);
text-decoration: none;
font-size: 14px;
font-weight: 500;
border-radius: 6px;
transition: all 0.25s ease;
position: relative;
}

.nav-link::after {
content: ”;
position: absolute;
bottom: 6px;
left: 16px;
right: 16px;
height: 2px;
background: #2a8bf2;
transform: scaleX(0);
transition: transform 0.25s ease;
}

.nav-link:hover {
color: #fff;
background: rgba(42, 139, 242, 0.15);
}

.nav-link:hover::after {
transform: scaleX(1);
}

/* 下拉菜单触发器 */
.has-dropdown > .nav-link {
padding-right: 32px;
}

.has-dropdown > .nav-link::before {
content: ‘\f107’;
font-family: ‘Font Awesome 6 Free’;
font-weight: 900;
position: absolute;
right: 12px;
top: 50%;
transform: translateY(-50%);
font-size: 12px;
opacity: 0.7;
transition: transform 0.25s ease;
}

.has-dropdown:hover > .nav-link::before {
transform: translateY(-50%) rotate(180deg);
}

/* 下拉面板 */
.dropdown-panel {
position: absolute;
top: 100%;
left: 0;
min-width: 220px;
background: #fff;
border-radius: 8px;
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
opacity: 0;
visibility: hidden;
transform: translateY(10px);
transition: all 0.25s ease;
padding: 12px 0;
margin-top: 8px;
}

.has-dropdown:hover .dropdown-panel {
opacity: 1;
visibility: visible;
transform: translateY(0);
}

.dropdown-item {
display: block;
padding: 12px 20px;
color: #333;
text-decoration: none;
font-size: 14px;
transition: all 0.2s ease;
border-left: 3px solid transparent;
}

.dropdown-item:hover {
background: #f5f9ff;
color: #2a8bf2;
border-left-color: #2a8bf2;
}

.dropdown-item i {
margin-right: 10px;
width: 16px;
color: #2a8bf2;
}

/* ==================== 右侧功能区 ==================== */
.header-actions {
display: flex;
align-items: center;
gap: 16px;
}

/* 搜索区域 */
.search-wrapper {
position: relative;
}

.search-icon {
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
background: transparent;
border: none;
color: rgba(255, 255, 255, 0.85);
cursor: pointer;
border-radius: 50%;
transition: all 0.25s ease;
font-size: 18px;
}

.search-icon:hover {
background: rgba(255, 255, 255, 0.1);
color: #fff;
}

.search-box {
position: absolute;
top: 50%;
right: 0;
transform: translateY(-50%);
opacity: 0;
visibility: hidden;
display: flex;
align-items: center;
background: #fff;
border-radius: 25px;
padding: 4px 4px 4px 16px;
min-width: 280px;
transition: all 0.3s ease;
}

.search-box.active {
opacity: 1;
visibility: visible;
right: 44px;
}

.search-box input {
border: none;
outline: none;
font-size: 14px;
flex: 1;
padding: 8px 0;
background: transparent;
color: #333;
}

.search-box input::placeholder {
color: #999;
}

.search-box .close-btn {
width: 32px;
height: 32px;
border: none;
background: #f0f0f0;
border-radius: 50%;
cursor: pointer;
color: #666;
display: flex;
align-items: center;
justify-content: center;
margin-left: 8px;
transition: all 0.2s ease;
}

.search-box .close-btn:hover {
background: #e0e0e0;
}

/* 分隔线 */
.divider {
width: 1px;
height: 24px;
background: rgba(255, 255, 255, 0.2);
}

/* 用户菜单 */
.user-menu {
position: relative;
}

.user-btn {
display: flex;
align-items: center;
gap: 8px;
padding: 8px 16px;
background: transparent;
border: 1px solid rgba(42, 139, 242, 0.5);
color: #2a8bf2;
border-radius: 6px;
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: all 0.25s ease;
}

.user-btn:hover {
background: rgba(42, 139, 242, 0.15);
border-color: #2a8bf2;
}

.user-btn i {
font-size: 16px;
}

.user-dropdown {
position: absolute;
top: 100%;
right: 0;
min-width: 180px;
background: #fff;
border-radius: 8px;
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
opacity: 0;
visibility: hidden;
transform: translateY(10px);
transition: all 0.25s ease;
padding: 12px 0;
margin-top: 8px;
}

.user-menu.active .user-dropdown {
opacity: 1;
visibility: visible;
transform: translateY(0);
}

.user-dropdown .dropdown-header {
padding: 12px 20px;
border-bottom: 1px solid #eee;
margin-bottom: 8px;
}

.user-dropdown .user-name {
font-weight: 600;
color: #333;
font-size: 14px;
}

.user-dropdown .user-email {
font-size: 12px;
color: #999;
margin-top: 2px;
}

/* 汉堡菜单 */
.mobile-toggle {
display: none;
flex-direction: column;
gap: 5px;
padding: 8px;
background: transparent;
border: none;
cursor: pointer;
}

.mobile-toggle span {
width: 24px;
height: 2px;
background: rgba(255, 255, 255, 0.9);
transition: all 0.3s ease;
border-radius: 2px;
}

.mobile-toggle.active span:nth-child(1) {
transform: rotate(45deg) translate(5px, 5px);
}

.mobile-toggle.active span:nth-child(2) {
opacity: 0;
}

.mobile-toggle.active span:nth-child(3) {
transform: rotate(-45deg) translate(5px, -5px);
}

/* ==================== 移动端响应式 ==================== */
.mobile-nav {
display: none;
position: fixed;
top: 70px;
left: 0;
right: 0;
bottom: 0;
background: rgba(10, 26, 47, 0.98);
backdrop-filter: blur(20px);
padding: 20px 40px;
overflow-y: auto;
opacity: 0;
visibility: hidden;
transition: all 0.3s ease;
}

.mobile-nav.active {
opacity: 1;
visibility: visible;
}

.mobile-nav-list {
list-style: none;
display: flex;
flex-direction: column;
gap: 8px;
}

.mobile-nav-link {
display: block;
padding: 16px 20px;
color: rgba(255, 255, 255, 0.85);
text-decoration: none;
font-size: 16px;
font-weight: 500;
border-radius: 8px;
transition: all 0.25s ease;
}

.mobile-nav-link:hover {
background: rgba(42, 139, 242, 0.15);
color: #fff;
}

.mobile-nav-item.has-dropdown .mobile-submenu {
display: none;
list-style: none;
padding-left: 20px;
margin-top: 8px;
}

.mobile-nav-item.has-dropdown.open .mobile-submenu {
display: block;
}

.mobile-submenu .dropdown-item {
display: flex;
align-items: center;
padding: 12px 16px;
color: rgba(255, 255, 255, 0.7);
font-size: 14px;
}

.dropdown-toggle {
display: none;
background: transparent;
border: none;
color: rgba(255, 255, 255, 0.5);
cursor: pointer;
padding: 8px;
font-size: 14px;
}

@media (max-width: 1024px) {
.header-container {
padding: 0 24px;
}

.nav {
display: none;
}

.mobile-toggle {
display: flex;
}

.mobile-nav {
display: block;
}

.search-box {
right: 0;
}

.search-box.active {
right: 40px;
min-width: 240px;
}

.header-actions {
gap: 8px;
}
}

@media (max-width: 768px) {
.header-container {
padding: 0 16px;
height: 60px;
}

.logo-brand {
font-size: 20px;
}

.logo-slogan {
display: none;
}

.user-btn span {
display: none;
}

.search-box.active {
position: fixed;
top: 60px;
left: 16px;
right: 16px;
min-width: auto;
transform: none;
margin-top: 0;
z-index: 999;
}
}
</style>
</head>
<body>
<!– Header 开始 –>
<header class=”header” id=”header”>
<div class=”header-container”>
<!– Logo 区域 –>
<a href=”#” class=”logo”>
<span class=”logo-brand”>
<i class=”fas fa-cloud”></i>
CloudPlus
</span>
<span class=”logo-slogan”>高性能 · 稳如磐石</span>
</a>

<!– 桌面端导航 –>
<nav class=”nav”>
<div class=”nav-item”>
<a href=”#” class=”nav-link”>首页</a>
</div>
<div class=”nav-item”>
<a href=”#” class=”nav-link”>云服务器</a>
</div>
<div class=”nav-item”>
<a href=”#” class=”nav-link”>云电脑挂机宝</a>
</div>
<div class=”nav-item”>
<a href=”#” class=”nav-link”>主机 VPS</a>
</div>
<div class=”nav-item has-dropdown”>
<a href=”#” class=”nav-link”>解决方案</a>
<div class=”dropdown-panel”>
<a href=”#” class=”dropdown-item”>
<i class=”fas fa-building”></i>企业上云
</a>
<a href=”#” class=”dropdown-item”>
<i class=”fas fa-gamepad”></i>游戏部署
</a>
<a href=”#” class=”dropdown-item”>
<i class=”fas fa-shopping-cart”></i>电商方案
</a>
<a href=”#” class=”dropdown-item”>
<i class=”fas fa-chart-line”></i>大数据分析
</a>
</div>
</div>
<div class=”nav-item”>
<a href=”#” class=”nav-link”>支持中心</a>
</div>
<div class=”nav-item has-dropdown”>
<a href=”#” class=”nav-link”>控制台</a>
<div class=”dropdown-panel”>
<a href=”#” class=”dropdown-item”>
<i class=”fas fa-tachometer-alt”></i>控制台登录
</a>
<a href=”#” class=”dropdown-item”>
<i class=”fas fa-file-invoice-dollar”></i>账单管理
</a>
<a href=”#” class=”dropdown-item”>
<i class=”fas fa-headset”></i>工单支持
</a>
</div>
</div>
</nav>

<!– 右侧功能区 –>
<div class=”header-actions”>
<!– 搜索 –>
<div class=”search-wrapper”>
<button class=”search-icon” id=”searchToggle” aria-label=”搜索”>
<i class=”fas fa-search”></i>
</button>
<div class=”search-box” id=”searchBox”>
<input type=”text” placeholder=”搜索产品、文档或知识库” id=”searchInput”>
<button class=”close-btn” id=”searchClose”>
<i class=”fas fa-times”></i>
</button>
</div>
</div>

<div class=”divider”></div>

<!– 用户菜单(未登录状态) –>
<div class=”user-menu” id=”userMenu”>
<button class=”user-btn” id=”userBtn”>
<i class=”fas fa-user”></i>
<span>登录 / 注册</span>
</button>
<!– 已登录状态的用户下拉(当前隐藏) –>
<div class=”user-dropdown” id=”userDropdown”>
<div class=”dropdown-header”>
<div class=”user-name”>张管理员</div>
<div class=”user-email”>admin@example.com</div>
</div>
<a href=”#” class=”dropdown-item”>
<i class=”fas fa-user-circle”></i>个人中心
</a>
<a href=”#” class=”dropdown-item”>
<i class=”fas fa-cog”></i>账户设置
</a>
<a href=”#” class=”dropdown-item”>
<i class=”fas fa-sign-out-alt”></i>退出登录
</a>
</div>
</div>

<!– 移动端汉堡菜单 –>
<button class=”mobile-toggle” id=”mobileToggle” aria-label=”菜单”>
<span></span>
<span></span>
<span></span>
</button>
</div>
</div>

<!– 移动端侧滑导航 –>
<div class=”mobile-nav” id=”mobileNav”>
<ul class=”mobile-nav-list”>
<li class=”mobile-nav-item”>
<a href=”#” class=”mobile-nav-link”>首页</a>
</li>
<li class=”mobile-nav-item”>
<a href=”#” class=”mobile-nav-link”>云服务器</a>
</li>
<li class=”mobile-nav-item”>
<a href=”#” class=”mobile-nav-link”>云电脑挂机宝</a>
</li>
<li class=”mobile-nav-item”>
<a href=”#” class=”mobile-nav-link”>主机 VPS</a>
</li>
<li class=”mobile-nav-item has-dropdown” id=”mobileSolution”>
<div style=”display: flex; justify-content: space-between; align-items: center;”>
<a href=”#” class=”mobile-nav-link”>解决方案</a>
<button class=”dropdown-toggle” data-target=”mobileSolution”>
<i class=”fas fa-chevron-down”></i>
</button>
</div>
<ul class=”mobile-submenu”>
<li><a href=”#” class=”dropdown-item”><i class=”fas fa-building”></i>企业上云</a></li>
<li><a href=”#” class=”dropdown-item”><i class=”fas fa-gamepad”></i>游戏部署</a></li>
<li><a href=”#” class=”dropdown-item”><i class=”fas fa-shopping-cart”></i>电商方案</a></li>
<li><a href=”#” class=”dropdown-item”><i class=”fas fa-chart-line”></i>大数据分析</a></li>
</ul>
</li>
<li class=”mobile-nav-item”>
<a href=”#” class=”mobile-nav-link”>支持中心</a>
</li>
<li class=”mobile-nav-item has-dropdown” id=”mobileConsole”>
<div style=”display: flex; justify-content: space-between; align-items: center;”>
<a href=”#” class=”mobile-nav-link”>控制台</a>
<button class=”dropdown-toggle” data-target=”mobileConsole”>
<i class=”fas fa-chevron-down”></i>
</button>
</div>
<ul class=”mobile-submenu”>
<li><a href=”#” class=”dropdown-item”><i class=”fas fa-tachometer-alt”></i>控制台登录</a></li>
<li><a href=”#” class=”dropdown-item”><i class=”fas fa-file-invoice-dollar”></i>账单管理</a></li>
<li><a href=”#” class=”dropdown-item”><i class=”fas fa-headset”></i>工单支持</a></li>
</ul>
</li>
</ul>
</div>
</header>

<script>
document.addEventListener(‘DOMContentLoaded’, function() {
const header = document.getElementById(‘header’);
const searchToggle = document.getElementById(‘searchToggle’);
const searchBox = document.getElementById(‘searchBox’);
const searchClose = document.getElementById(‘searchClose’);
const searchInput = document.getElementById(‘searchInput’);
const userBtn = document.getElementById(‘userBtn’);
const userMenu = document.getElementById(‘userMenu’);
const userDropdown = document.getElementById(‘userDropdown’);
const mobileToggle = document.getElementById(‘mobileToggle’);
const mobileNav = document.getElementById(‘mobileNav’);
const dropdownToggles = document.querySelectorAll(‘.dropdown-toggle’);

// 滚动时添加阴影效果
let lastScroll = 0;
window.addEventListener(‘scroll’, function() {
const currentScroll = window.pageYOffset;

if (currentScroll > 10) {
header.classList.add(‘scrolled’);
} else {
header.classList.remove(‘scrolled’);
}

lastScroll = currentScroll;
});

// 搜索框展开/收起
searchToggle.addEventListener(‘click’, function(e) {
e.stopPropagation();
searchBox.classList.add(‘active’);
setTimeout(() => searchInput.focus(), 300);
});

searchClose.addEventListener(‘click’, function(e) {
e.stopPropagation();
searchBox.classList.remove(‘active’);
searchInput.value = ”;
});

document.addEventListener(‘click’, function(e) {
if (!searchBox.contains(e.target) && !searchToggle.contains(e.target)) {
searchBox.classList.remove(‘active’);
}
});

// 搜索回车处理
searchInput.addEventListener(‘keypress’, function(e) {
if (e.key === ‘Enter’) {
const query = this.value.trim();
if (query) {
window.location.href = `/search?q=${encodeURIComponent(query)}`;
}
}
});

// 用户菜单切换
userBtn.addEventListener(‘click’, function(e) {
e.stopPropagation();
userMenu.classList.toggle(‘active’);
});

document.addEventListener(‘click’, function(e) {
if (!userDropdown.contains(e.target) && !userBtn.contains(e.target)) {
userMenu.classList.remove(‘active’);
}
});

// 移动端导航开关
mobileToggle.addEventListener(‘click’, function() {
mobileToggle.classList.toggle(‘active’);
mobileNav.classList.toggle(‘active’);
document.body.style.overflow = mobileNav.classList.contains(‘active’) ? ‘hidden’ : ”;
});

// 移动端子菜单展开
dropdownToggles.forEach(function(btn) {
btn.addEventListener(‘click’, function(e) {
e.stopPropagation();
const targetId = this.getAttribute(‘data-target’);
const parentItem = document.getElementById(targetId);
parentItem.classList.toggle(‘open’);

// 切换箭头方向
const icon = this.querySelector(‘i’);
icon.classList.toggle(‘fa-chevron-down’);
icon.classList.toggle(‘fa-chevron-up’);
});
});

// ESC 键关闭所有浮动元素
document.addEventListener(‘keydown’, function(e) {
if (e.key === ‘Escape’) {
searchBox.classList.remove(‘active’);
userMenu.classList.remove(‘active’);
mobileToggle.classList.remove(‘active’);
mobileNav.classList.remove(‘active’);
document.body.style.overflow = ”;
}
});

// 窗口大小改变时重置移动端菜单
window.addEventListener(‘resize’, function() {
if (window.innerWidth > 1024) {
mobileToggle.classList.remove(‘active’);
mobileNav.classList.remove(‘active’);
document.body.style.overflow = ”;
}
});

// 点击导航链接后关闭移动端菜单
const mobileLinks = document.querySelectorAll(‘.mobile-nav-link:not(.has-dropdown .mobile-nav-link)’);
mobileLinks.forEach(function(link) {
link.addEventListener(‘click’, function() {
if (window.innerWidth <= 1024) {
mobileToggle.classList.remove(‘active’);
mobileNav.classList.remove(‘active’);
document.body.style.overflow = ”;
}
});
});
});
</script>
</body>
</html>

 



评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码