Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/03/2013, 11:22
Profesor_Lambetain
 
Fecha de Ingreso: septiembre-2010
Mensajes: 67
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Definir backgroundcolor en ventana emergente.

Bueno, con el siguiente código pude:
(1) colorear el fondo del pop-up (en negro, en mi caso, que es lo que inicialmente buscaba),
(2) Centrar la imagen horizontalmente en el pop-up (verticalmente me fue imposible... de momento),
(3) Accesoriamente, mostrar la foto íntegramente en el pop-up de dimensiones fijas, ocupando la mayor superficie libre posible del pop-up, sin tener necesidad de recurrir a barras de desplazamiento (aunque el pop-up se define con barras); tener en cuenta que en este pop-up se visualizan más de 100 fotos, todas de diferentes ancho (px) x alto (px), y si se permite al pop-up variar sus dimensiones, el usuario puede acabar con fatiga visual.

Código HTML:
/* Lanzado de pop-up de foto ampliada en caso de que esté el "Fotoshow ON" activado (campo [10] de formulario=1). Las variables alto y ancho son las dimensiones reales (px) de cada foto */
if(document.forms[0].elements[10].value==0){
	fotogrande.close();
} else if (document.forms[0].elements[10].value==1) {
	fotogrande.close();
	fotogrande=window.open("","fotogrande","width=767,height=463,top=167,left=552 ,toolbar=yes,menubar=no,location=no,directories=no,scrollbars=yes,status=yes,resizable=yes,fullscreen=no");	
	fotogrande.document.write('<html><head></head><body style="background-color:#000000"><div style="text-align:center"><img src="" /></div></body></html>');
	anchoneto=752;
	altoneto=450;
	relacpop=anchoneto/altoneto;
	if (ancho/alto >= relacpop && ancho <= anchoneto) {
		fotogrande.document.images[0].width=anchoneto;
		fotogrande.document.images[0].height=Math.floor(anchoneto*alto/ancho);
	} else if (ancho/alto <= relacpop && alto <= altoneto) {
	fotogrande.document.images[0].width=Math.floor(altoneto*ancho/alto);
	fotogrande.document.images[0].height=altoneto;
	} else if (ancho >= anchoneto && ancho/alto >= relacpop) {
		fotogrande.document.images[0].width=anchoneto;
		fotogrande.document.images[0].height=Math.floor(anchoneto*alto/ancho);
	} else if (alto >= altoneto && ancho/alto <= relacpop) {
		fotogrande.document.images[0].width=Math.floor(altoneto*ancho/alto);
		fotogrande.document.images[0].height=altoneto;
	}
	fotogrande.document.images[0].src=imagename;
}