Foros del Web » Programando para Internet » Javascript »

position absolute javascript

Estas en el tema de position absolute javascript en el foro de Javascript en Foros del Web. Saludos!!! Tengo una aplicación que te dibuja un plano y he conseguido que dibuje encima de ese plano una serie de iconos. La aplicación se ...
  #1 (permalink)  
Antiguo 05/08/2011, 00:25
Avatar de atapuerkasman  
Fecha de Ingreso: febrero-2011
Mensajes: 76
Antigüedad: 13 años, 2 meses
Puntos: 2
position absolute javascript

Saludos!!! Tengo una aplicación que te dibuja un plano y he conseguido que dibuje encima de ese plano una serie de iconos. La aplicación se conecta a una bd que almacena las coordenadas x e y del icono. Mi duda es la siguiente:

Yo quiero que las coordenadas en las que me dibuje los iconos no dependan del tamaño de la pantalla, para lo cual lo que hago es dar las coordenadas tomando como punto de inicio la esquina superior-izquierda de la imagen de plano.

Aplico la siguiente cuenta para obtener las coordenadas:

coordenadax= e.clientX -document.getElementById("imagen").offsetLeft;

e.clientX=donde pincho el usuario q queria añadir el icono
offsetLeft= la distancia entre la posición de la imagen, y el borde de la página

de esta manera los iconos me los dibujara siempre en el mismo punto aunque el tamaño de la pantalla sea distinto.

Mi problema es que cuando intento dibujar la imagen en lugar de cogerme como punto de inicio la esquina superior_izquierda de la imagen, me coge la de la página. Me podríais decir que tengo mal en el código.

Esta es la manera en la que dibujo los iconos.

Código:
    <img id='"id"' src='./images/box.png' style='position:absolute;top:"+getCoordY()+"px;left:"+getCoordX()+"px;z-index:5'
  #2 (permalink)  
Antiguo 05/08/2011, 11:04
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: position absolute javascript

primero: debes obtener la posición (X,Y) del elemento al que quieres hacer referencia, para saber su posición respecto a la página (body), y así sumar a las coordenadas que ya tienes. Yo lo hago con estas funciones:


Código Javascript:
Ver original
  1. function findPosX(obj,der){//el parámetro der es por si quieres saber la posición a la derecha del objeto en vez de la izquierda
  2.         var obor=obj;
  3.         var curleft = 0;
  4.         if(obj.offsetParent)
  5.             while(1){
  6.                 curleft += obj.offsetLeft;
  7.                 if(!obj.offsetParent)
  8.                     break;
  9.                 obj = obj.offsetParent;
  10.             }
  11.         else if(obj.x)
  12.             curleft += obj.x;
  13.         if(der==1){
  14.             curleft=curleft+obor.offsetWidth;
  15.         }
  16.         return curleft;
  17.       }
  18.     function findPosY(obj){
  19.         var curtop = 0;
  20.         if(obj.offsetParent)
  21.             while(1){
  22.                 curtop += obj.offsetTop;
  23.                 if(!obj.offsetParent)
  24.                     break;
  25.                 obj = obj.offsetParent;
  26.             }
  27.         else if(obj.y)
  28.             curtop += obj.y;
  29.         return curtop;
  30.      }
  #3 (permalink)  
Antiguo 08/08/2011, 01:58
Avatar de atapuerkasman  
Fecha de Ingreso: febrero-2011
Mensajes: 76
Antigüedad: 13 años, 2 meses
Puntos: 2
Respuesta: position absolute javascript

Muchas gracias, el código funciona perfectamente. Lo he probado en crome y sin ningún tipo de problema.

Pero inexplicablemente en IE el metodo offsetTop no devuelve los valores que debería. ¿Sabes a que puede ser debido?

el método offsetLeft funciona bien pero offsetTop no.

Etiquetas: position
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 00:55.