Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

498
Views
¿Cómo obtener la posición X del mouse de un evento de mouse de un div (y no de sus hijos) con React 17?

Tengo un fragmento simple donde adjunto un oyente onMouseMove a un div dado:

 <div onMouseMove={handleMouseMove}> <div>A</div> <div>B</div> <div>C</div> </div>

Quiero saber la posición X del puntero del mouse dentro del div principal al que conecté el oyente del mouse. Sin embargo, el evento parece contener solo referencias a los divs secundarios (como target ) y la raíz (como objetivo currentTarget ).

La propiedad nativeEvent del evento tampoco parece ayudar.

Estoy en React 17. Creo que esto lo hace más difícil, ya que anteriormente currentTarget a ese div donde coloqué al oyente, pero en React 17 estos oyentes a la raíz.

¿Cómo puedo obtener las coordenadas dentro del div al que adjunté al oyente?

¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Esto funciona como se esperaba en la versión de react 17.0.2

 function Component() { const onMouseMove = (e) => { let rect = e.currentTarget.getBoundingClientRect(); let x = e.clientX - rect.left; let y = e.clientY - rect.top; console.log(x, y); }; return ( <div onMouseMove={onMouseMove}> <div>A</div> <div>B</div> <div>C</div> </div> ); }

Basado en esta respuesta y un comentario al respecto, sobre el uso de un currentTarget

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!