From 38e6376f5a6659c2785e0ce1df78ae6a8c3861fa Mon Sep 17 00:00:00 2001 From: "tangly1024.com" Date: Fri, 2 Feb 2024 10:49:58 +0800 Subject: [PATCH] =?UTF-8?q?Next=E4=B8=BB=E9=A2=98=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- themes/next/components/TopNav.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/themes/next/components/TopNav.js b/themes/next/components/TopNav.js index 9cf2a1aa..1689fdfb 100644 --- a/themes/next/components/TopNav.js +++ b/themes/next/components/TopNav.js @@ -11,6 +11,7 @@ import TagGroups from './TagGroups' import CONFIG from '../config' import { siteConfig } from '@/lib/config' import { useNextGlobal } from '..' +import { useRouter } from 'next/router' let windowTop = 0 @@ -24,6 +25,7 @@ const TopNav = (props) => { const { locale } = useGlobal() const searchDrawer = useRef() const collapseRef = useRef(null) + const router = useRouter() const scrollTrigger = useCallback(throttle(() => { const scrollS = window.scrollY @@ -51,6 +53,21 @@ const TopNav = (props) => { const [isOpen, changeShow] = useState(false) + // 监听滚动 + useEffect(() => { + router.events.on('routeChangeComplete', menuCollapseHide) + return () => { + router.events.off('routeChangeComplete', menuCollapseHide) + } + }, []) + + /** + * 点击切换页面后关闭这点菜单 + */ + const menuCollapseHide = () => { + changeShow(false) + } + const toggleMenuOpen = () => { changeShow(!isOpen) }