Tengo una navegación lateral con un montón de equipos de baloncesto. Así que me gustaría mostrar algo diferente para cada equipo cuando se pasa el cursor sobre uno de ellos. Además, estoy usando Reactjs, así que si pudiera tener una variable que pudiera pasar a otro componente, sería increíble.
99
Respuestas:
Los componentes de React exponen todos los eventos de mouse estándar de Javascript en su interfaz de nivel superior. Por supuesto, aún puede usarlo
:hover
en su CSS, y eso puede ser adecuado para algunas de sus necesidades, pero para los comportamientos más avanzados activados por un desplazamiento, deberá usar Javascript. Entonces, para administrar las interacciones de desplazamiento, querrá usaronMouseEnter
yonMouseLeave
. Luego, los adjunta a los controladores en su componente de la siguiente manera:Luego, usará alguna combinación de estado / accesorios para pasar el estado o las propiedades modificadas a sus componentes secundarios de React.
fuente
onMouseEnter
onMouseLeave
son eventos DOM. No funcionarán en una costumbreReactComponent
, deberá pasar los eventos como un accesorio y vincular estos eventos a un elemento DOM en esoReactComponent
, como<div onMouseOver={ () => this.props.onMouseOver }>
ReactJs define los siguientes eventos sintéticos para eventos de mouse:
Como puede ver, no hay ningún evento de desplazamiento, porque los navegadores no definen un evento de desplazamiento de forma nativa.
Querrá agregar controladores para onMouseEnter y onMouseLeave para el comportamiento de desplazamiento.
ReactJS Docs - Eventos
fuente
Sé que la respuesta aceptada es grande, pero para cualquier persona que esté buscando un vuelo estacionario como la sensación puede utilizar
setTimeout
enmouseover
y guardar el mango en un mapa (de la lista de identificadores de digamos vamos a setTimeout Mango). Almouseover
borrar el identificador de setTimeout y eliminarlo del mapaE implemente el mapa de la siguiente manera:
Y el mapa es así
Yo prefiero
onMouseOver
yonMouseOut
porque también se aplica a todos los niños delHTMLElement
. Si no es necesario, puede utilizaronMouseEnter
yonMouseLeave
respectivamente.fuente
Para tener efecto de desplazamiento, simplemente puede probar este código
O si desea manejar esta situación usando useState () hook, puede probar este código
Ambos códigos anteriores funcionarán para el efecto de desplazamiento, pero el primer procedimiento es más fácil de escribir y comprender
fuente