Foros del Web » Programando para Internet » Javascript »

Capa centrada en pantalla pero respecto a la posicion en que estoy

Estas en el tema de Capa centrada en pantalla pero respecto a la posicion en que estoy en el foro de Javascript en Foros del Web. He estado mirando en las faqs y buscando en otras preguntas, pero no llego a encontrar una solución a mi problema exacto... :( A ver ...
  #1 (permalink)  
Antiguo 26/01/2005, 10:30
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 10 meses
Puntos: 0
Pregunta Capa centrada en pantalla pero respecto a la posicion en que estoy

He estado mirando en las faqs y buscando en otras preguntas, pero no llego a encontrar una solución a mi problema exacto... :(

A ver si me explico, tengo una página simple con fotografías que quiero ampliar en una capa... todo eso genial, pero ... estoy intentado centrar la capa en pantalla... PERO... la página es muyyy larga, es de esas que llevan anclas y en la misma pagina esta todo. Pues yo quiero que la capa de ampliación de imagen salga centrada en pantalla pero respecto a la posicion en que estoy. Me explico? Sería una especie de... "que me centre en altura y anchura de lo que tengo en pantalla en este momento".

He probado muchas cosas

outerWidth

innerWidth

ancho=document.images['Foto'].width;
alto=document.images['Foto'].height;
vleft=(window.screen.width/2)-(ancho/2);
vtop=(window.screen.availHeight/2)-(alto/2);

Pero nada me funciona.... ¿Es posible hacer esto que quiero?
Como siempre muchas gracias de antemano!
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #2 (permalink)  
Antiguo 27/01/2005, 09:00
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 10 meses
Puntos: 0
¿no es posible? :(
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #3 (permalink)  
Antiguo 27/01/2005, 11:34
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola Enea

Prueba este código, pero te adelanto que solo he conseguido que funcione en IE:
Código:
  ancho=document.images['Foto'].width;
  alto=document.images['Foto'].height;
  wAncho=document.body.clientWidth;
  wAlto=document.body.clientHeight;
  vleft=(document.body.offsetWidth-ancho)/2;
  vtop=(document.body.offsetHeight-alto)/2;
  arriba=document.body.scrollTop;
  izquierda=document.body.scrollLeft;
  document.images['Foto'].style.position='absolute';
  document.images['Foto'].style.top=vtop+arriba; 
  document.images['Foto'].style.left=vleft+izquierda;
Saludos,
  #4 (permalink)  
Antiguo 28/01/2005, 03:05
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 10 meses
Puntos: 0
Hola JavierB,
Tu codigo funciona "casi" perfectamente...
Hay un problemilla cuando las imagenes son de diferente tamaño...
(Casi todas son iguales pero hay dos o tres que son más pequeñas),
es como si no actualizara el tamaño que tiene la foto, me explico...
Si tu le estas dando a la grande y le das a una pequeña esta sale descentrada horizontalmente pero si le vuelves a dar se centra, cuando le das a una grande despues de la pequeña esta también esta también esta descentrada hasta que escoges una del mismo tamaño que la anterior...
He estado probando a cambiar de orden el código pero nada funciona.. :(

Código:
ancho=document.images['Foto'].width;
alto=document.images['Foto'].height;
wAncho=document.body.clientWidth;
wAlto=document.body.clientHeight;
vleft=(document.body.offsetWidth-ancho)/2;
vtop=(document.body.offsetHeight-alto)/2;
arriba=document.body.scrollTop;
izquierda=document.body.scrollLeft;
document.images['Foto'].style.position='absolute';
document.images['Foto'].style.top=vtop+arriba; 
document.images['Foto'].style.left=vleft+izquierda; 	 	  
		
document.images['Foto'].src="fotos_grandes/Foto"+Cod+".jpg";
obj=document.getElementById('Ampliacion');
obj.style.visibility=(obj.style.visibility=='visible') ? 'hidden' : 'visible';
Que puede estar pasando?
__________________
Ibisof | Saludos desde Eivissa !!! :p

Última edición por Enea; 28/01/2005 a las 03:09
  #5 (permalink)  
Antiguo 28/01/2005, 05:17
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

¿Has probado poniendo la línea document.images['Foto'].src="fotos_grandes/Foto"+Cod+".jpg"; al principio, para que se carge la imágen antes de calcular el ancho y el alto?

Saludos,
  #6 (permalink)  
Antiguo 28/01/2005, 05:25
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 10 meses
Puntos: 0
Si, si lo probé...
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #7 (permalink)  
Antiguo 28/01/2005, 06:28
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Rehola.

¿Tienes la página en algún sitio donde se pueda ver?

Saludos,
  #8 (permalink)  
Antiguo 28/01/2005, 09:04
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 10 meses
Puntos: 0
Bueno, no la tenía colgada en ningún sitio porque no se colgará en mi servidor y todavía no me han dado los datos.
Pero bueno, la he subido al mio de momento para que podais verla, no tiene muchas historias es muy simple y no esta acaba del todo...
Pero bueno, ahí va la url:
www.enibiza.net/willimax

P.d: Anda! Aquí se ve perfectamente como si carga la anterior...
Como lo ejecutaba en local iba rápido y no se veía, aquí se que carga siempre antes la anterior...
__________________
Ibisof | Saludos desde Eivissa !!! :p

Última edición por Enea; 28/01/2005 a las 09:12
  #9 (permalink)  
Antiguo 31/01/2005, 03:58
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 10 meses
Puntos: 0
Bueno,

Como daba tantos problemas y me retardaba mucho todo al final he optado por pop-ups...
Tenía que tener eso listo para hoy no me podía enrollar... Pero muchas gracias por todo, cuando tenga tiempo investigaré sobre el tema...
__________________
Ibisof | Saludos desde Eivissa !!! :p
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:05.