Style Hover in React

Rana Hasnain Khan 15 Februar 2024
Style Hover in React

Wir werden mehrere Möglichkeiten vorstellen, Hover-Effekte in React zu stylen.

Hover-Effekte verwenden und Stile für Hover-Effekte in React festlegen

Hover-Effekte sind eine großartige Möglichkeit, unsere Webanwendungen zu verbessern und benutzerfreundlicher zu gestalten. Diese visuellen Effekte sind großartig und tragen dazu bei, die Benutzer bei Laune zu halten.

Wir können Hover-Effekte auch in unseren React-Anwendungen verwenden, um sie mit einfachen Schritten benutzerfreundlich und interessant zu gestalten. Beginnen wir mit einem Beispiel, um zu verstehen, wie wir Hover-Effekte verwenden und Stile für unsere Hover-Effekte festlegen können.

Lassen Sie uns eine neue Anwendung erstellen, indem Sie den folgenden Befehl verwenden.

# react
npx create-react-app my-app

Nachdem wir unsere neue Anwendung in React erstellt haben, gehen wir mit diesem Befehl zu unserem Anwendungsverzeichnis.

# react
cd my-app

Lassen Sie uns nun unsere App ausführen, um zu überprüfen, ob alle Abhängigkeiten korrekt installiert sind.

# react
npm start

Wir müssen einige Bibliotheken installieren, die uns helfen, Hover-Effekte in unserer Anwendung zu implementieren.

Wir führen den folgenden Befehl aus, um react-hook für Hover zu installieren.

# react
npm i @react-hook/hover

Wir führen den folgenden Befehl aus, um dash-ui/styles zu installieren.

# react
npm i @dash-ui/styles

Nachdem wir unsere Bibliotheken installiert haben, müssen wir useHover und styles in die Datei App.js importieren.

# react
import useHover from "@react-hook/hover";
import { styles } from "@dash-ui/styles";

Jetzt definieren wir unsere Elemente Hovertarget und Hovered in export default function App(). Und wir werden ein div zurückgeben, das seinen Klassennamen ändert, sobald es bewegt wird, und ein ref von Hovertarget hat, und es wird einen schwebenden Stil ausgeben, wenn jemand darauf schwebt, oder einen Standardstil, wenn niemand darüber schwebt.

# react
export default function App() {
  const Hovertarget = React.useRef(null);
  const Hovered = useHover(Hovertarget);
  return (
    <div className={hoverStyle({ Hovered })} ref={Hovertarget}>
      {Hovered ? "Hovered Style" : "Default Style"}
    </div>
  );
}

Jetzt werden wir unsere CSS-Stile für die Klassen Hovered und default definieren. Unser Code in App.js sieht also wie folgt aus.

# react
import React from "react";
import useHover from "@react-hook/hover";
import { styles } from "@dash-ui/styles";

export default function App() {
  const Hovertarget = React.useRef(null);
  const Hovered = useHover(Hovertarget);
  return (
    <div className={hoverStyle({ Hovered })} ref={Hovertarget}>
      {Hovered ? "Hovered Style" : "Default Style"}
    </div>
  );
}

const hoverStyle = styles({
  default: `
    background-color: lightblue;
    width: 100px;
    height: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
  `,
  Hovered: `
    background-color: lightgreen;
    color: white;
  `
});

Ausgabe:

Hover-Styling in React

Versuchen Sie nun, unsere Hover-Effekte mit style.css anstelle von Instyle-Elementen zu gestalten. Zuerst erstellen wir eine neue Datei als New.js und geben darin ein div mit einer Klasse New zurück. Wir werden auch style.css in diese neue Datei importieren. Unser Code sieht also wie folgt aus.

# react
import "./styles.css"

export default function New() {
  return <div className="New">CSS Style</div>;
}

Jetzt importieren wir diese neue Datei in index.js, um sie auf der Hauptseite in React anzuzeigen, und zeigen die Komponente New nach der Komponente App an. Unser Code sieht wie folgt aus.

# react
import { StrictMode } from "react";
import ReactDOM from "react-dom";
import New from "./New.js";

import App from "./App";

const rootElement = document.getElementById("root");
ReactDOM.render(
  <StrictMode>
    <App />
    <New />
  </StrictMode>,
  rootElement
);

Lassen Sie uns nun unsere neuen Div- und Hover-Effekte mit CSS gestalten.

# react
.New{
  background-color: lightgreen;
    width: 100px;
    height: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 10px;
}
.New:hover{
  background-color: lightblue;
    color: white;
}

Ausgabe:

Hover-Effekte im Reaktionsstil mit Stil-CSS

Hover-Ausgabe:

Hover-Stil im zweiten Reaktionsbeispiel

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn