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

139
Views
La información sobre herramientas que sigue al mouse se aleja más cuanto más pequeña es la ventana

Acabo de renovar mi código de información sobre herramientas debido a problemas con la alteración de la posición según el tamaño de su padre (principalmente debido al uso de offsetX/Y en lugar de pageX/Y, pero la página también estaba siendo extraña). Así que decidí tener solo una información sobre herramientas para cada una de las páginas de mi sitio, vinculada al div principal, y simplemente alimentarlo con un texto diferente dependiendo de sobre qué esté pasando el mouse (me ocuparé de la parte de visibilidad más adelante).

Y ha funcionado bastante bien hasta ahora, pero el único problema es que, cuanto más pequeña hago mi ventana, más lejos está la información sobre herramientas de mi mouse, hasta que ya no está a la vista.

Aquí está la codificación de JavaScript que he hecho para ello.

 var body = document.getElementsByClassName("test"); var tooltip = document.getElementById("tooltip"); body[0].addEventListener("mousemove", tooltipMove) function tooltipMove(event) { var x = event.pageX; var y = event.pageY; tooltip.style.top = (y + -900) + "px"; tooltip.style.left = (x + -875) + "px"; }

La codificación CSS para la información sobre herramientas:

 .tooltip { visibility: hidden; width: 170px; background-color: white; background-image: url("images/tooltipbackground.png"); color: black; text-align: center; border-style: groove; border-color: #f4bb4c #ffd966 #ffd966 #f4bb4c; border-radius: 2px; padding: 5px 5px; position: absolute; z-index: 1; } .notfound:hover .tooltip { visibility: visible; }

Y el HTML:

 <div class="test" style="top: 70px; position: relative; height: 100%; width: 100%;"> <h1>TEST</h1> <img src="images/pagenotfound.png"> </div> <div style="width: 1px; height: 1px; position: relative;"> <span class="tooltip" id="tooltip">testing</span> </div>

Debo mencionar que la altura del cuerpo (que tiene la clase "notfound") es de 900 px y su ancho de 600 px, en caso de que ese sea uno de los problemas.

El div de 1 píxel es justo lo que estoy usando para "alojar" la información sobre herramientas, no estoy seguro de si también está causando algún problema. Inspeccioné la página para verla, y nunca pareció deslizarse con el tamaño de la ventana.

Cualquier tipo de ayuda sería muy apreciada. Intenté cambiarlo de pageX/Y a clientX/Y, pero es el mismo problema. Y el uso de desplazamiento hace que su posición cambie dependiendo de lo que esté pasando, que es la razón por la que estoy renovando el código en primer lugar.

También intenté cambiar la posición de la información sobre herramientas de absoluta a, bueno, cualquier otra cosa (después de cambiar el tamaño de su padre para que no se aplaste), pero eso no ha ayudado.

Otra cosa que debo mencionar es que, por alguna razón, el cambio no parece ocurrir en el eje Y, es solo cuando aplasto la ventana horizontalmente que la información sobre herramientas cambia, al menos por lo que he notado.

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

0

Pensé que cambiar la posición de la información sobre herramientas a fija la había hecho desaparecer, pero simplemente no podía verla debido al reposicionamiento masivo que le había hecho. Una vez que eliminé eso, estaba visible y bien, y mejor aún, ¡permanece en su posición correcta sin importar el tamaño de la pantalla!

También tenga en cuenta: tuve que cambiar pageX/Y a clientX/Y, ya que el uso de la página hizo que la información sobre herramientas se desplazara verticalmente cuando se aplastaba.

 <div style="height: 1px; width: 1px; position: relative;"> <span class="tooltip" id="tooltip" style="position: fixed;">Placeholder</span> </div>
 for (i = 0; i < tip.length; i++) { tip[i].addEventListener("mousemove", tooltipMove) tip[i].addEventListener("mouseleave", defaultVis) } function tooltipMove(event) { var x = event.clientX; var y = event.clientY; tooltip.style.visibility = "visible"; tooltip.style.top = (y + -50) + "px"; tooltip.style.left = (x + -200) + "px"; } function defaultVis() { tooltip.style.visibility = "hidden"; }
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!