1- import { RouteMatcher } from 'next/dist/server/future/route-matchers/route-matcher' ;
21import { useRouter } from 'next/router' ;
32import { useEffect } from 'react' ;
4-
3+ /**
4+ * 白点鼠标跟随
5+ * @returns
6+ */
57const CursorDot = ( ) => {
68 const router = useRouter ( ) ;
79 useEffect ( ( ) => {
@@ -31,13 +33,15 @@ const CursorDot = () => {
3133
3234
3335 // 为所有可点击元素和包含 hover 或 group-hover 类名的元素添加事件监听
34- const clickableElements = document . querySelectorAll (
35- 'a, button, [role="button"], [onclick], [cursor="pointer"], [class*="hover"], [class*="group-hover"], [class*="cursor-pointer"]'
36- ) ;
37- clickableElements . forEach ( ( el ) => {
38- el . addEventListener ( 'mouseenter' , handleMouseEnter ) ;
39- el . addEventListener ( 'mouseleave' , handleMouseLeave ) ;
40- } ) ;
36+ setTimeout ( ( ) => {
37+ const clickableElements = document . querySelectorAll (
38+ 'a, button, [role="button"], [onclick], [cursor="pointer"], [class*="hover"], [class*="group-hover"], [class*="cursor-pointer"]'
39+ ) ;
40+ clickableElements . forEach ( ( el ) => {
41+ el . addEventListener ( 'mouseenter' , handleMouseEnter ) ;
42+ el . addEventListener ( 'mouseleave' , handleMouseLeave ) ;
43+ } ) ;
44+ } , 200 ) ; // 延时 200ms 执行
4145
4246 // 动画循环:延迟更新小白点位置
4347 const updateDotPosition = ( ) => {
@@ -58,6 +62,9 @@ const CursorDot = () => {
5862 // 清理函数
5963 return ( ) => {
6064 document . removeEventListener ( 'mousemove' , handleMouseMove ) ;
65+ const clickableElements = document . querySelectorAll (
66+ 'a, button, [role="button"], [onclick], [cursor="pointer"], [class*="hover"], [class*="group-hover"], [class*="cursor-pointer"]'
67+ ) ;
6168 clickableElements . forEach ( ( el ) => {
6269 el . removeEventListener ( 'mouseenter' , handleMouseEnter ) ;
6370 el . removeEventListener ( 'mouseleave' , handleMouseLeave ) ;
0 commit comments