From dacf1a28a7ed247bc10e63c0958a7227dfcfdf0b Mon Sep 17 00:00:00 2001 From: tangly1024 Date: Mon, 14 Apr 2025 14:57:28 +0800 Subject: [PATCH] =?UTF-8?q?proxio=20=E7=99=BD=E7=82=B9=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/CursorDot.js | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/components/CursorDot.js b/components/CursorDot.js index 1e00001e..7fb36603 100644 --- a/components/CursorDot.js +++ b/components/CursorDot.js @@ -1,7 +1,9 @@ -import { RouteMatcher } from 'next/dist/server/future/route-matchers/route-matcher'; import { useRouter } from 'next/router'; import { useEffect } from 'react'; - +/** + * 白点鼠标跟随 + * @returns + */ const CursorDot = () => { const router = useRouter(); useEffect(() => { @@ -31,13 +33,15 @@ const CursorDot = () => { // 为所有可点击元素和包含 hover 或 group-hover 类名的元素添加事件监听 - const clickableElements = document.querySelectorAll( - 'a, button, [role="button"], [onclick], [cursor="pointer"], [class*="hover"], [class*="group-hover"], [class*="cursor-pointer"]' - ); - clickableElements.forEach((el) => { - el.addEventListener('mouseenter', handleMouseEnter); - el.addEventListener('mouseleave', handleMouseLeave); - }); + setTimeout(() => { + const clickableElements = document.querySelectorAll( + 'a, button, [role="button"], [onclick], [cursor="pointer"], [class*="hover"], [class*="group-hover"], [class*="cursor-pointer"]' + ); + clickableElements.forEach((el) => { + el.addEventListener('mouseenter', handleMouseEnter); + el.addEventListener('mouseleave', handleMouseLeave); + }); + }, 200); // 延时 200ms 执行 // 动画循环:延迟更新小白点位置 const updateDotPosition = () => { @@ -58,6 +62,9 @@ const CursorDot = () => { // 清理函数 return () => { document.removeEventListener('mousemove', handleMouseMove); + const clickableElements = document.querySelectorAll( + 'a, button, [role="button"], [onclick], [cursor="pointer"], [class*="hover"], [class*="group-hover"], [class*="cursor-pointer"]' + ); clickableElements.forEach((el) => { el.removeEventListener('mouseenter', handleMouseEnter); el.removeEventListener('mouseleave', handleMouseLeave);