Foros del Web » Programando para Internet » Javascript »

posisionar imagen en el centro

Estas en el tema de posisionar imagen en el centro en el foro de Javascript en Foros del Web. Buenas, tengo una web donde me muestra 10 fotos que tengo en una array y al hacer click en cada una de ellas las muestra ...
  #1 (permalink)  
Antiguo 18/12/2010, 12:02
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
posisionar imagen en el centro

Buenas,

tengo una web donde me muestra 10 fotos que tengo en una array y al hacer click en cada una de ellas las muestra en grande sobre el centro de la pantalla.

El problema es que al hacer click la primera ves sobre una foto me da de ancho y alto y me las posisiona en cualquier lado pero al haer click por segunda ves te da el ancho y alto de la imagen correcta entonces la posisiona en el centro.

alguien sabe porque??

les dejo el codigo

Código Javascript:
Ver original
  1. //creamos un objeto imagen
  2. img = document.createElement('img');
  3. //guardamos la imagen sobre ese objeto
  4. img.setAttribute("src","img/fotos/"+i+".jpg");
  5. //guardamos el ancho en la variable
  6. var ancho = img.width;
  7. //guardamos el alto en la variable
  8. var alto = img.height;
  9. var total_ancho = "-"+ancho/2+"px";
  10. var total_alto = "-"+alto/2+"px";
  11. //posisionamos la imagen en el centro
  12. img.style.position = "relative";
  13. img.style.top = "50%";
  14. img.style.left = "50%";
  15. img.style.marginLeft=total_ancho;
  16. img.style.marginTop=total_alto;
  17. img.style.border = "3px solid #FFF";
  18. img.setAttribute("id","foto");

saludos
  #2 (permalink)  
Antiguo 18/12/2010, 13:09
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: posisionar imagen en el centro

Hasta que la imagen no ha cargado no están disponibles width y height.
Deberás usar el constructor Image y el evento onload:

Código PHP:
var src='loquesea.jpg';
var 
im=new Image();
im.src=src+'?'+new Date().getTime();
im.onload=function(){
    var 
W=im.width;
    var 
H=im.height;

  #3 (permalink)  
Antiguo 18/12/2010, 13:09
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: posisionar imagen en el centro

estas usando position relative, como como lo indica su nombre su posición varía según el flujo del DOM, si quieres algo más preciso usa absolute.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #4 (permalink)  
Antiguo 18/12/2010, 15:13
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: posisionar imagen en el centro

Cita:
Iniciado por Panino5001 Ver Mensaje
Hasta que la imagen no ha cargado no están disponibles width y height.
Deberás usar el constructor Image y el evento onload:

Código PHP:
var src='loquesea.jpg';
var 
im=new Image();
im.src=src+'?'+new Date().getTime();
im.onload=function(){
    var 
W=im.width;
    var 
H=im.height;

Hola:

Aunque parezca una chorrada, la línea del onload yo la pondría antes de la asignación de la url...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 20/12/2010, 14:55
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: posisionar imagen en el centro

Buenas,
al usar en onload la imagen primero se ve desentrada y a los dos segundo se centra.
porque puede ser???

Código Javascript:
Ver original
  1. img.onload=function(){
  2.  
  3.               var ancho = img.width;
  4.  
  5.               var alto = img.height;
  6.  
  7.               var total_ancho = "-"+ancho/2+"px";
  8.  
  9.               var total_alto = "-"+alto/2+"px";
  10.  
  11.       img.style.position = "absolute";
  12.  
  13.               img.style.top = "50%";
  14.  
  15.               img.style.left = "50%";
  16.  
  17.               img.style.marginLeft=total_ancho;
  18.  
  19.               img.style.marginTop=total_alto;
  20.  
  21.               img.style.border = "3px solid #FFF";
  22.  
  23.               img.setAttribute("id","foto");  
  24.  
  25.           }  
  26.          
  27.  
  28.       pantalla.appendChild(img);


saludos
  #6 (permalink)  
Antiguo 20/12/2010, 15:29
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: posisionar imagen en el centro

Hola:

Evidentemente, son dos segundos los que necesita el navegador y tu conexión de internet en cargar la imagen... y en consecuencia, saber el ancho y alto para hacer los cálculos...

Lo que empieza por on significa la respuesta a un evento, o sea en este caso concreto, cuando se carga esa imagen (o sea, que se pueden obtener las propiedades como anchura y altura)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 20/12/2010, 16:34
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: posisionar imagen en el centro

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Evidentemente, son dos segundos los que necesita el navegador y tu conexión de internet en cargar la imagen... y en consecuencia, saber el ancho y alto para hacer los cálculos...

Lo que empieza por on significa la respuesta a un evento, o sea en este caso concreto, cuando se carga esa imagen (o sea, que se pueden obtener las propiedades como anchura y altura)

Saludos
vale, depsues de leer esto es normal que suceda esto. entonces como puedo poner que depsues de hacer todos estos pasos.

Código Javascript:
Ver original
  1. img = document.createElement('img');
  2.     img.setAttribute("src","../img/varices/"+i+".jpg");
  3.     var ancho = img.width;
  4.         var alto = img.height;
  5.         var total_ancho = "-"+ancho/2+"px";
  6.         var total_alto = "-"+alto/2+"px";
  7.              img.style.position = "absolute";
  8.         img.style.top = "50%";
  9.         img.style.left = "50%";
  10.         img.style.marginLeft=total_ancho;
  11.         img.style.marginTop=total_alto;
  12.         img.style.border = "3px solid #FFF";
  13.         img.setAttribute("id","foto");
  14.  
  15. la i es un parametro pasado de otra funcion segun la foto en la que hace click

me cargue la imagen cuando termine de hacer todo eso??

Etiquetas: centro
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 18:01.