Foros del Web » Programando para Internet » Javascript »

Div Flotante....

Estas en el tema de Div Flotante.... en el foro de Javascript en Foros del Web. Hola estoy haciendo un Div Flotante que salta en el evento onmouseover de una imagen, la idea es que salga donde esta la imagen. Me ...
  #1 (permalink)  
Antiguo 21/09/2009, 12:29
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Div Flotante....

Hola estoy haciendo un Div Flotante que salta en el evento onmouseover de una imagen, la idea es que salga donde esta la imagen.
Me sale bastante bien pero cuando se hace scroll de la pagina se corre el div y no se como controlarlo.

este es el codigo y desde ya muchas gracias.

function getMouseXY(e) {
if (IE) {
tempX = event.clientX + document.body.scrollLeft;
tempY = event.clientY + document.body.scrollTop;
} else {
tempX = e.pageX
tempY = e.pageY
}
return true
}

function Show(Ventana)
{
posx = tempX;
posy = tempY;

document.getElementById(Ventana).style.left = posx;
document.getElementById(Ventana).style.top = posy;
document.getElementById(Ventana).style.display="bl ock";
}

function Hide(Div)
{
document.getElementById(Div).style.display="none";
}

<img alt="" src="icono_alertas_azul.gif"
width="26" height="26" align="middle" onmouseover="javascript: Show('DivAlertas')"
onmouseout="javascript: Hide('DivAlertas')"
style=" margin-top:-3px; border-width:0px;"/>
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.
  #2 (permalink)  
Antiguo 21/09/2009, 13:08
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Div Flotante....

Hola

No entiendo cuando dices "cuando se hace scroll de la pagina se corre el div"

Entiendo que quieres que sea estático. En tal caso elimina la función function getMouseXY(e), elimina también en la función Show(Ventana) estas vars posx = tempX; posy = tempY; y usa position:relative o absolute (lo que mejor te venga)

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 21/09/2009, 13:25
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Div Flotante....

Claro, quiero que sea estatico a la imagen que le asigno el mouseover.....

No me gusta colocar el valor x e y a mano ya que si modifico la imagen de lugar tengo que cambiar los valores x e y que le paso al javascript pero ta....


Gracias.
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.
  #4 (permalink)  
Antiguo 21/09/2009, 14:22
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Div Flotante....

Hola

Prueba así

Código javascript:
Ver original
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function PosicionAbsolutaElemento(element)  {
  5.     if (typeof element == "string")
  6.         element = document.getElementById(element)
  7.             if (!element) return { top:0,left:0 };
  8.         var y = 0;
  9.         var x = 0;
  10.             while (element.offsetParent) {
  11.                     x += element.offsetLeft;
  12.                     y += element.offsetTop;
  13.                 element = element.offsetParent;
  14.      }
  15.     return {top:y,left:x};
  16.  
  17. }
  18.  
  19. function Show(elElemento,Ventana) {
  20. var PosElemento = PosicionAbsolutaElemento(elElemento);
  21. posLeft = parseInt(PosElemento.left);
  22. posTop = parseInt(PosElemento.top);
  23. document.getElementById(Ventana).style.left = posLeft + "px";
  24. document.getElementById(Ventana).style.top = posTop + "px";
  25. document.getElementById(Ventana).style.display="block";
  26. }
  27.  
  28. function Hide(Div)
  29. {
  30. document.getElementById(Div).style.display="none";
  31. }
  32. </script>
  33. </head>
  34. <body>
  35. <div id="DivAlertas"  style="z-index:1000; position:absolute; top:0px; left:0px; overflow:hidden; display:none;">Una Capa</div>
  36. <table border="1px">
  37. <tr height="100px">
  38. <td>Una prueba</td>
  39. </tr>
  40. </table>
  41. <img id="img" alt="" src="icono_alertas_azul.gif" width="26" height="26" align="middle" onmouseover="javascript: Show(this.id,'DivAlertas')" onmouseout="javascript: Hide('DivAlertas')" style=" margin-top:-3px; border-width:0px;"/>
  42. </body>
  43. </html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:28.