javascript - 如何在不使用 useState 的情况下更改 React 中悬停时的类,以便并非所有元素都被触发

标签 javascript html css reactjs

我想在元素(跨度)悬停时在 React 中应用悬停效果,但是当我对多个元素执行此操作并悬停其中一个元素时,所有这些都会被触发。我想要执行多个这些 span 元素,但是当我将鼠标悬停在其中一个元素时,所有这些元素都会发生变化。

import React, { useState } from "react";
import { Link } from "react-router-dom";
import { Animated } from "react-animated-css";

// styles
import styles from "./Intro.module.css";

function Intro() {
  const [hovered, setHovered] = useState(false);
  const toggleHover = () => setHovered(!hovered);
  const toggleHover2 = () =>
    setTimeout(() => {
      setHovered(!hovered);
    }, 700);

  return (
    <section className={styles.container}>
      <div className={styles.inner}>
        <span className={styles.hello}>hello,</span>
        <h1 className={styles.title}>
          My name is

          <!-- This bit -->

          <span
            className={hovered ? "animated rubberBand" : ""}
            onMouseEnter={toggleHover}
            onMouseLeave={toggleHover2}
          >
            D
          </span>

        <!-- This bit -->
          mytro Bula
        </h1>
        <h1 className={styles.title}>
          I turn <span className={styles.titleCoffee}>coffee</span> into code
        </h1>
        <p className={styles.para}>
          I'm a <span className={styles.paraRed}>front-end web developer</span>
          <span className={styles.paraBlue}>/designer</span> from Ukraine based
          in London, I love creating beatiful and functional{" "}
          <span className={styles.paraRed}>websites</span>,{" "}
          <span className={styles.paraRed}>applications</span>, and everything
          in between.
        </p>
        <Link to="/Contact" className={styles.btn}>
          Get in touch
        </Link>
      </div>
    </section>
  );
}

export default Intro;

最佳答案

我建议使用CSS的:悬停伪级以更改悬停时的元素样式 - 它的性能更大,不太可能引起您看到的错误。

但是,如果您想继续进行react中的操作,则应将 span 划分为新组件,然后将所有鼠标悬停相关状态移动到该组件中。 目前,您拥有一个“盘旋”状态,所有元素共享,这就是为什么当其中一个徘徊时,您都会看到它们都会改变。 通过将 setState 放在单独的组件中,然后在此 Into 组件中重复使用该组件,每个组件都会有其自己的版本的 hover hover 。 :)

关于javascript - 如何在不使用 useState 的情况下更改 React 中悬停时的类,以便并非所有元素都被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62796147/

相关文章:

javascript - 访问 IndexedDB 中的主键

javascript - 使用 webpack-dev-server 时 webpack 构建中缺少 bundle.js

html - 左对齐,并在容器内居中放置内联图像

javascript - 突出显示当前页面菜单项。当选择子菜单项时也突出显示主菜单项

html - 如何在 Bootstrap 中处理网格系统内的数据

javascript - 带有闭包编译器和/或闭包库的 html5、angularJS

javascript - 将延迟处理程序附加到函数外部的嵌套 AJAX 调用

java - 如何设置 doInbackground 在继续 mainActivity 之前完成其任务?

html - Chrome 中某些文本下的虚线列表的奇怪行为

jquery - 获取Jquery进度条的值