Estilo Hover en React

Rana Hasnain Khan 18 abril 2022
Estilo Hover en React

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

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