Ver Mensaje Individual
  #6 (permalink)  
Antiguo 25/11/2005, 07:59
mario2005
 
Fecha de Ingreso: julio-2005
Mensajes: 90
Antigüedad: 19 años, 6 meses
Puntos: 1
Hola a todos, esto que propones se puede hacer manejando los objetos 'offsetParent' 'offsetTop' y 'offsetLeft'. Con los dos últimos calculamos la distancia o desplazamiento de un objeto respecto de la parte superior y parte izquierda respectivamente. Mediante 'offsetParent' calculamos el desplazamiento de los objetos padre, ya que las distancias que nos ofrecen 'offsetTop' y 'offsetLeft' son relativas al objeto padre.
Esta es la función que retorna la posición vertical exacta de un objeto:

function findPosY(obj)
{
var curtop = 0;
if (obj.offsetParent)
{
while (obj.offsetParent)
{
curtop += obj.offsetTop
obj = obj.offsetParent;
}
}
else if (obj.y)
curtop += obj.y;
return curtop;
}

En definitiva, lo que hace la función es ir sumando el valor de la posición
de los diferentes elementos HTML que anidan al objeto en cuestión.

Para calcular la posición horizontal exacta y de esta forma obtener la coordenada (x,y), habría que repetir la función pero utilizando 'offsetLeft' en lugar de 'offsetTop'. Esto último no lo he probado, pero supongo que funcionará bien, la función que os he puesto, os aseguro que si rula.

Saludos.