HOWTO · React

Estilo Hover en React

Este tutorial demuestra cómo aplicar estilo al pasar el mouse por encima en React.

En esta página

Presentaremos múltiples formas de diseñar efectos de desplazamiento en React.

Usar efectos de desplazamiento y establecer estilos para efectos de desplazamiento en React

Los efectos de desplazamiento son una excelente manera de mejorar nuestras aplicaciones web y hacerlas fáciles de usar. Estos efectos visuales son geniales y ayudan a mantener contentos a los usuarios.

También podemos usar efectos de desplazamiento en nuestras aplicaciones React para que sean fáciles de usar e interesantes con pasos sencillos. Comencemos con un ejemplo para comprender cómo podemos usar efectos de desplazamiento y establecer estilos para nuestros efectos de desplazamiento.

Vamos a crear una nueva aplicación usando el siguiente comando.

# react
npx create-react-app my-app

Después de crear nuestra nueva aplicación en React, iremos a nuestro directorio de aplicaciones usando este comando.

# react
cd my-app

Ahora, ejecutemos nuestra aplicación para verificar si todas las dependencias están instaladas correctamente.

# react
npm start

Debemos instalar algunas bibliotecas para ayudarnos a implementar efectos de desplazamiento en nuestra aplicación.

Ejecutaremos el siguiente comando para instalar react-hook para pasar el mouse.

# react
npm i @react-hook/hover

Ejecutaremos el siguiente comando para instalar dash-ui/styles.

# react
npm i @dash-ui/styles

Una vez que hayamos instalado nuestras bibliotecas, debemos importar useHover y styles en el archivo App.js.

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

Ahora, definiremos nuestros elementos Hovertarget y Hovered dentro de export default function App(). Y devolveremos un div que cambiará su nombre de clase una vez que se desplace y tenga una ref de Hovertarget, y generará un estilo desplazado si alguien se desplaza sobre él o un estilo predeterminado si nadie se desplaza sobre él.

# 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>
  );
}

Ahora, definiremos nuestros estilos CSS para las clases Hovered y default. Así que nuestro código en App.js se verá como a continuación.

# 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;
  `
});

Producción:

deslizar el estilo en React

Ahora, intente diseñar nuestros efectos de desplazamiento usando style.css en lugar de elementos Instyle. Primero, crearemos un nuevo archivo como New.js, y dentro de él devolveremos un div con una clase New. También importaremos style.css en este nuevo archivo. Así que nuestro código se verá como a continuación.

# react
import "./styles.css"

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

Ahora importaremos este nuevo archivo en index.js para mostrarlo en la página principal de React y mostrar el componente New después del componente App. Nuestro código se verá como a continuación.

# 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
);

Ahora, diseñemos nuestros nuevos efectos div y hover usando CSS.

# 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;
}

Producción:

React efectos de desplazamiento de estilo usando Style CSS

Salida de desplazamiento:

estilo de desplazamiento en el segundo ejemplo de React