Presentador Virtual e24Presenter
Encuentra usuarios de Twitter en tu ciudad con LocaFollow

votarMostrar capa teniendo en cuenta el scroll

Autor: S3rGy0 | Archivado en: ASP, HTML, JavaScript el día 20/Jun/2005

El otro día estaba tratando de mostrar una capa al pasar el puntero del ratón sobre una imagen, de manera que la capa apareciera justo debajo del puntero del ratón. Al principio sólo tuve que mostrarla cuando se lanzará el evento onmouseover, pero a medida que iba añadiendo controles a la página ésta se iba haciendo más grande hasta que apareció el maldito scroll. Lo que ocurrió entonces es que la capa no me salía justo debajo del puntero del ratón sino que se desplazaba arriba o abajo. Después de un rato mirando el código me di cuenta que el desplazamiento que se producía era equivalente al desplazamiento que tenía la barra de scroll, por lo tanto, para solucionarlo tuve que sumarle a la posición actual del ratón, el desplazamiento de la barra de scroll:

document.getElementById(”divObservaciones”).style.left=event.clientX + document.body.scrollLeft;
document.getElementById(”divObservaciones”).style.top=event.clientY + document.body.scrollTop;

Esto se debe a que event.clientX y su homólogo en el eje Y toman una posición relativa a la pantalla, mientras que las propiedades left y top toman medidas absolutas, por lo que se produce un desfase. Si a la posición del puntero del ratón le sumamos los desplazamientos, tanto horizontal como vertical del scroll, obtendremos las posiciones absolutas que demandan las propiedades left y top.

Con esto la capa siempre se muestra donde yo quiero, aunque haya un scroll de por medio.

S3rGy0.


  • Digg
  • del.icio.us
  • Facebook
  • Google
  • LinkedIn
  • Meneame
  • MySpace
  • Technorati
  • TwitThis
Posts Relacionados

4 Comentarios on “Mostrar capa teniendo en cuenta el scroll”

  1. #1 Simplemente Maluchita dijo 4:54 pm el Junio 20th, 2005:

    Pasaba por acá a dejar saludos!!


  2. #2 Edu® dijo 8:42 am el Junio 21st, 2005:

    Muchas gracias por tu comentario :)

    Un saludo.


  3. #3 jarl dijo 10:41 am el Junio 30th, 2005:

    Sería interesante una librería js para control de capas, scroll y tal.

    El texto con fondo negro no se lee muy bien, cuesta, cuesta…

    Mola blog.


  4. #4 valande dijo 1:16 pm el Enero 21st, 2009:

    Sólo quería darte las gracias. Me ha venido bien este apunte.

    Saludos.



Deja un comentario.