This commit is contained in:
张成
2025-08-25 15:57:54 +08:00
parent 1ad48b234c
commit 3ed48736b6
19 changed files with 4233 additions and 2097 deletions

View File

@@ -116,6 +116,7 @@ export default {
mounted() {
this.initHeader()
this.initScrollListener()
this.initMobileMenu()
},
methods: {
// 封装事件监听器创建,提高代码复用性
@@ -197,6 +198,52 @@ export default {
}
}
});
},
// 初始化移动端菜单
initMobileMenu() {
// 汉堡菜单点击事件
this.add_event_listener("hamburger", "click", () => {
this.toggle_class("mobileMenu", "active", true);
}, true);
// 返回按钮点击事件
this.add_event_listener(".linkGoBack", "click", () => {
this.remove_class("mobileMenu", "active", true);
// 关闭移动端菜单后滚动到顶部
window.scrollTo({
top: 0,
left: 0,
behavior: 'smooth'
});
});
// 点击菜单项后自动关闭菜单
const menuLinks = document.querySelectorAll('.headerMobileMenu a');
menuLinks.forEach(link => {
link.addEventListener('click', () => {
this.remove_class("mobileMenu", "active", true);
});
});
// 点击菜单外部区域关闭菜单
document.addEventListener('click', (e) => {
const mobileMenu = document.getElementById('mobileMenu');
const hamburger = document.getElementById('hamburger');
if (mobileMenu && mobileMenu.classList.contains('active') &&
!mobileMenu.contains(e.target) &&
!hamburger.contains(e.target)) {
this.remove_class("mobileMenu", "active", true);
}
});
// ESC键关闭菜单
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
this.remove_class("mobileMenu", "active", true);
}
});
}
}
}