Skip to content

Commit 6f770a5

Browse files
authored
Merge pull request tangly1024#3349 from tangly1024/feat/theme-proxio
proxio 白点动画相关
2 parents 091a7e5 + dacf1a2 commit 6f770a5

1 file changed

Lines changed: 16 additions & 9 deletions

File tree

components/CursorDot.js

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
import { RouteMatcher } from 'next/dist/server/future/route-matchers/route-matcher';
21
import { useRouter } from 'next/router';
32
import { useEffect } from 'react';
4-
3+
/**
4+
* 白点鼠标跟随
5+
* @returns
6+
*/
57
const 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

Comments
 (0)