当前位置: 首页 > 知识库问答 >
问题:

元素仅在悬停在按钮上时跟随光标

颜志学
2023-03-14

我目前在我的React项目中有一个圆球跟随光标。但是,我希望它只出现在光标悬停在按钮上的时候,而不是其他的。

有没有办法做到这一点?

这是密码本

let mouseX = 0
let mouseY = 0
let ballX = 0
let ballY = 0
let speed = 0.2

const Page = () => {

const ballRef = React.useRef(null)


  const animate = React.useCallback(() => {

    if (ballRef && ballRef.current) {
      let distX = mouseX - ballX
      let distY = mouseY - ballY
      ballX = ballX + distX * speed
      ballY = ballY + distY * speed
      ballRef.current.style.left = ballX + "px"
      ballRef.current.style.top = ballY + "px"
    }

    requestAnimationFrame(animate)
  }, [ballRef, mouseX, mouseY, ballX, ballY])

  React.useEffect(() => {
    const onMouseMove = event => {
      mouseX = event.pageX
      mouseY = event.pageY
    }

    document.addEventListener("mousemove", onMouseMove)

    animate()

    return () => document.removeEventListener("mousemove", onMouseMove)
  }, [])  

 return (
   <>
     <button>BUTTON</button>
     <div ref={ballRef} className="ball"></div>
     <div class="divs"></div>
     <div class="divs"></div>
   </>
  );
}

共有1个答案

靳富
2023-03-14

将此添加到CSS的开头将产生您所要寻找的基本效果:

#app button:hover + .ball {
  display: block;
}

.ball {
  display: none;
}

这里的第一行假定.ball将在按钮之后立即添加到DOM中。

如果您希望球被剪辑在按钮内,您应该重新排列您的React脚本中的HTML,使.balldiv位于

 类似资料:
  • 如果孩子在焦点中(已被点击),我怎么能失去父母的悬停状态?我有一个菜单箭头(用OPEN代替了它,以减少代码),它在悬停状态下打开我的菜单和菜单项,当我单击它们时,菜单项就会聚焦。在菜单项点击后,我希望能够失去对我父母的关注,这样菜单就会消失。 如果可能的话,我会尽量避免使用javascript,这是我最好的尝试... 这是我的html null null 编辑 我在一个单页应用程序上使用Angul

  • 问题内容: 当父元素悬停时如何更改子元素的样式。如果可能的话,我希望使用CSS解决方案。有没有可能通过:hover CSS选择器解决方案。实际上,当面板上悬停时,我需要更改面板内选项栏的颜色。 希望支持所有主流浏览器。 问题答案: 是的,您绝对可以做到这一点。只需使用类似 根据此页面,所有主流浏览器都支持该页面。

  • 我怎么能做那样的东西?i、 e当我在绝对下拉菜单上悬停时,相对下拉链接应该应用下面的样式。 还是只通过js求解?救救我。 我的同僚们都是精英。Facere,saepe,别这样!在别名处的发明者排斥物减去不可交换的最大非共和国劳动量(obcaecati odit omnis)?Ipsam、iusto dolorum dolorem voluptatem、建筑师ullam mollitia、面部劳损水

  • 我试图在html和CSS中实现一种效果。我有一个按钮,上面写着“登录”。所以我想做的是当我悬停的时候: “登录”按钮将转换为两个按钮,分别表示: “客户登录”和“管理员登录”。

  • 我的代码在FF中运行良好,但如果我尝试使用IE,它会闪烁。 下面是我的代码 一旦动作移动到元素行被触发,它似乎通过了循环,或者鼠标一直在链接文本“abc”上移动。由于它闪烁,因此无法移动到下一个元素。我正在使用线程。由于悬停到元素后会显示其他项目,因此睡眠通常需要1秒左右的时间才能显示 我检查了以下链接,声明 出现这种情况的普遍理论是,IE在其事件循环期间正在进行某种类型的命中测试,这导致它在物理

  • 我想绘制INS的收盘价如下,它的工作原理。然后我想在图形上悬停时添加光标。我跟随https://matplotlib.org/3.1.0/gallery/misc/cursor_demo_sgskip.html的演示,这就是我想要的。 但当我将这些行添加到代码中时,它显示值错误。最初我使用历元时间作为x轴,我认为这就是问题所在,所以我将历元时间转换为日期时间,但它仍然不起作用,并且什么也没有绘制。