You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GSAP自定义光标动画导致React页面导航链接无法点击问题排查

导航链接无法点击的原因与修复方案

别担心,问题不是出在你用ref实现光标组件的逻辑上——核心原因是你的自定义Circle元素(跟随鼠标的那些圆圈)覆盖在了导航链接的上方,拦截了所有点击事件!

为什么会这样?

你的Circle组件返回的是<div className="circle">元素,这类跟随鼠标的组件通常会设置position: fixed或absolute来实现跟随效果,但如果没有做特殊处理,这些div会默认处于页面的上层,而且会接收所有指针事件,导致下面的导航链接根本接不到点击。

快速修复方案

1. 给Circle元素添加pointer-events: none

这是最直接的解决办法,让Circle元素不拦截任何指针事件,点击会直接穿透到下面的可交互元素(比如你的Link和li)。在你的CSS里加上:

.circle {
  pointer-events: none;
  /* 你的其他现有样式:比如position: fixed, border-radius, width/height等 */
}

2. 确保导航的层级高于Circle(可选补充)

如果加上pointer-events: none后还有问题,可以检查一下z-index的设置,让导航栏的层级比Circle更高:

.topbar {
  z-index: 10; /* 给导航一个更高的层级 */
  /* 其他现有样式 */
}

.circle {
  z-index: 1; /* 确保Circle的层级低于导航 */
  pointer-events: none;
}

关于你的ref用法的说明

你用forwardRef和useImperativeHandle暴露moveTo方法的写法是完全正确的,这部分逻辑不会导致导航无法点击,放心保留就好~

内容的提问来源于stack exchange,提问作者Em.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 15:04:09