Foros del Web » Programando para Internet » Javascript »

Mostrar un layer en la posición de un objeto html

Estas en el tema de Mostrar un layer en la posición de un objeto html en el foro de Javascript en Foros del Web. Hola tengo un pequeño problema el siguiente js me da como resultado la posición del top y left del botón que esta en la página, ...
  #1 (permalink)  
Antiguo 18/12/2008, 17:07
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 2
Mostrar un layer en la posición de un objeto html

Hola tengo un pequeño problema el siguiente js me da como resultado la posición del top y left del botón que esta en la página, pero cuando utilizo esos resultado para posicionar una capa (div) que esta oculta solo es correcto en Explorer y Opera pero no en Nestcape y Firefox, les pongo el código completo de mi ejemplo para que me puedan ayudar.

Lo que pretendo es ocultar el boton con el layer, muchas gracias

Sale un alert para que vean que la posición si sale bien pero no se porque en mi js el Firefox y Nestcape no le hace caso cuando lo uso para posicionar el layer.
Cita:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
#contenedor{
margin:50px;
width:100px;
}
-->
</style>
<script language="JavaScript" type="text/javascript">
function posicion(element) {
if (typeof element == "string")
element = document.getElementById(element)

if (!element) return { top:0,left:0 };

var y = 0;
var x = 0;
while (element.offsetParent) {
x += element.offsetLeft;
y += element.offsetTop;
element = element.offsetParent;
}
return {top:y,left:x};
}
function verposicion() {
var elemento = document.getElementById('miboton');
var pos = posicion(elemento)
document.getElementById('win').style.visibility="v isible";
document.getElementById('win').style.top=pos.top;//aqui es donde le digo su posición
document.getElementById('win').style.left=pos.left ;
alert("top="+pos.top+" left="+pos.left);
}
</script>

</head>
<body>
<div id="win" style="position:absolute; width:100px; visibility:hidden;">
<table width="100" height="100" border="0" cellpadding="0" cellspacing="0" bgcolor="#FF9900">
<tr>
<td>&nbsp;</td>
</tr>
</table>
</div>
<div id="contenedor">
<table width="100" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#FFCC00">1</td>
</tr>
<tr>
<td bgcolor="#0099CC">2</td>
</tr>
<tr>
<td bgcolor="#FF6600">3</td>
</tr>
<tr>
<td bgcolor="#FF0099">4</td>
</tr>
<tr>
<td><div align="center">
<input type="submit" name="Submit" value="Enviar" onclick="verposicion()" id='miboton'/>
</div></td>
</tr>
</table>
</div>
</body>
</html>
  #2 (permalink)  
Antiguo 18/12/2008, 19:33
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Mostrar un layer en la posición de un objeto html

Seguramente sí te devuelve la posición, sólo que no estás agregando la unidad (=pos.top+'px';) a la definición de la nueva posición.
  #3 (permalink)  
Antiguo 20/12/2008, 09:31
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Mostrar un layer en la posición de un objeto html

Gracias Panino, no vi pequeño error.
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 07:22.