Foros del Web » Programando para Internet » Javascript »

galeria de fotos

Estas en el tema de galeria de fotos en el foro de Javascript en Foros del Web. hola amigos nesecito una rutina para gareria de fotografias si alguno me duede ayuda muchas grasias...

  #1 (permalink)  
Antiguo 26/06/2003, 07:58
 
Fecha de Ingreso: noviembre-2002
Mensajes: 9
Antigüedad: 21 años, 5 meses
Puntos: 0
galeria de fotos

hola amigos nesecito una rutina para gareria de fotografias
si alguno me duede ayuda
muchas grasias
  #2 (permalink)  
Antiguo 26/06/2003, 08:01
 
Fecha de Ingreso: noviembre-2002
Mensajes: 9
Antigüedad: 21 años, 5 meses
Puntos: 0
ayuda
  #3 (permalink)  
Antiguo 26/06/2003, 08:26
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Primera pregunta a las 02:58 PM
Segunda pregunta a las 03:01 PM

¿3 minutos?

No hay que ser tan impaciente berja2001. Además tampoco has sido muy concreto con la pregunta, o es que querías que te lo dieran todo hecho. Pero bueno, por esta vez pase.

A ver si te vale esto, pero es en ASP ¿eh?

<H1>Listado de imágenes</H1>
<%
Dim FSO
Dim Files
Dim File
Dim Count
Const Columns = 3
Const ImageWidth = 100
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Files = FSO.GetFolder(Server.MapPath("./../images")).Files
Set FSO = Nothing
Response.Write "<TABLE width=""100%"" border=""1"" cellspacing=""0"">"
Response.Write "<TR>"
Count = 0
For Each File In Files
Select Case LCase(Right(File.Name, 3))
Case "jpg", "gif", "bmp", "png"
Count = Count + 1
if Count Mod Columns = 1 Then Response.Write "</TR><TR>"

Response.Write "<TD align=""center"" valign=""top"">"

Response.Write "<A href=""../images/" & File.Name & """>"
Response.Write File.Name
Response.Write "<BR><IMG src=""../images/" & File.Name & """ border=""1"" width=""" & ImageWidth & """><BR>"
Response.Write "</A>"

Response.Write "</TD>"
End Select
Next
Response.Write "</TR>"
Response.Write "</TABLE>"
Set File = Nothing
Set Files = Nothing
%>
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!

Última edición por Bravenap; 26/06/2003 a las 08:29
  #4 (permalink)  
Antiguo 26/06/2003, 09:10
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola berja2001:

Ya he visto que Bravenap (Hola ) te dió un tironcito de orejas por tus prisas (se me adelantó)...

Fijate en la página de mi perfil, donde hay una galería de caricaturas, o en esta otra: www.sucaricatura.com/2003 que es una futura acualización, y si te sirve avisa para indicarte como implementarla.

Saludos
  #5 (permalink)  
Antiguo 26/06/2003, 10:38
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Perdona berja2001: por no ponerte código...

Voy a poner unas líneas muyu básicas:

Código PHP:
<html>
<
body>
<
script language=javascript>
var 
minis = [
    
"mini/Famoso01.jpg",
    
"mini/Famoso02.jpg",
    
"mini/Famoso03.jpg",
    
"mini/Famoso04.jpg",
    
"mini/Famoso05.jpg"
];
var 
maxis = [
    
"maxi/Famoso01.jpg",
    
"maxi/Famoso02.jpg",
    
"maxi/Famoso03.jpg",
    
"maxi/Famoso04.jpg",
    
"maxi/Famoso05.jpg"
];

var 
galeria "";
for (var 
0maxis.length++)
    
galeria += "<img src=" minis[i] + " onclick=\"window.open('" maxis[i] + "', '', '')\" >";
document.write(galeria);
</script>
</body>
</html> 
En los enlaces que puse antes se daba formato a la galería y al popup, pero esas son cosas que dependerán de la apariencia que quieres darle a tu galería...

Tanto maxis como minis son arrays de las fotos y de las miniaturas que uses.

Espero que te sirva

Saludos
  #6 (permalink)  
Antiguo 27/06/2003, 11:19
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Hola a todos!

He hecho, con ayuda del magnífico SCRIPT de ajuste de ventana a imagen de tunait una sencilla galería de imágenes. No está tan terminada como me gustaría, pero creo que te servirá. Por supuesto es mejorable y aceptaré gustoso cualquier sugerencia.

He intentado hacerla lo más fácil de manejar posible y para ello me he valido de las típicas variables con las que configurar los parámetros (número de filas y columnas, forzado de tamaño de la imagen mini...) y de constructores para generar el código.

En caso de tener cualquier duda al respecto por favor pregunta.

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<
html>
<
head>
    <
title>Galería de Imágenes</title>
    <
style>
    
A{font:normal 10px/10px verdana;
    
color:blue;
    
text-decoration:none;
    }
    
input{font:normal 10px/10px verdana}
    </
style>
<
script>

var 
ventana
var cont=0
imagen
=new Array;
function 
nueva(peque,grande,nombre){
this.peque=new Image;
this.grande=new Image;
if(!
nombre){this.titulo=false}
else{
this.titulo=nombre}
this.peque.src=peque
this
.grande.src=grande;
}
//----------------- VARIABLES EDITABLES ---------------------------

var tituloGaleria="Galería de imágenes"//Título por defecto de la galería

var titulopordefecto "Galería de imágenes" //texto por defecto
// a mostrar en la barra de título de la pop up en caso de omitir el argumento titulo

var fotosPorFila=3;

var 
fotosPorColumna=3;

var 
forzarAncho=80;//Pon el ancho al que quieres forzar las 
//imágenes en miniatura. Si pones 0 no forzará nada

var forzarAlto=80;//Pon el alto al que quieres forzar las imágenes
//en miniatura. Si pones 0 no forzará nada

// -----------------------------------------------------------------------------
// | Pon todas las imágenes que quieras                                         |
// | Sintaxis:                                                                  |
// |        imagen[n]=new nueva(<imagen pequeña>,<imagen grande>,[titulo]);     |
// -----------------------------------------------------------------------------

imagen[0]=new nueva('1b.jpg','1.gif','foto Añaer');
imagen[1]=new nueva('2b.jpg','2.jpg','Ya sabía yoo...');
imagen[2]=new nueva('3b.jpg','3.jpg','Con faldas y a lo loco');
imagen[3]=new nueva('4b.jpg','4.jpg');
imagen[4]=new nueva('1b.jpg','1.jpg','foto rara');
imagen[5]=new nueva('2b.jpg','2.jpg');
imagen[6]=new nueva('3b.jpg','3.jpg','los amigos');
imagen[7]=new nueva('4b.jpg','4.jpg');
imagen[8]=new nueva('1b.jpg','1.jpg','foto rara');
imagen[9]=new nueva('2b.jpg','2.jpg');
imagen[10]=new nueva('3b.jpg','3.jpg','los amigos');
imagen[11]=new nueva('4b.jpg','4.jpg');

//------------- NO EDITES A PARTIR DE AQUÍ SI NO SABES LO QUE HACES -----------------


//script por Tunait
//Modificado un poquiiiito por KarlanKas

function afoto(cual){
titulo=imagen[cual].titulo;
cual=imagen[cual].grande.src;
if(
cont==1){ventana.close();ventana=null}
if(
titulo==null){titulo=titulopordefecto}
ventana=window.open('','ventana','resizable=yes,scrollbars=no')
ventana.document.write('<html><head><title>');
ventana.document.write(titulo '</title></head>');
ventana.document.write('<body style="overflow:hidden"');
ventana.document.write('marginwidth="0" marginheight="0"');
ventana.document.write('topmargin="0" bottommargin="0"');
ventana.document.write('leftmargin="0" rightmargin="0"'); 
ventana.document.write('scroll="no" onUnload="opener.cont=0">');
ventana.document.write('<img onError="self.close()" src="' cual '" alt="'+titulo+'" ')
ventana.document.write('onLoad="opener.redimensionar(this.width, this.height)">')
if(
ventana&&!ventana.closed){ventana.document.close()}
cont++
}
function 
redimensionar(ancho,alto)
{
ventana.resizeTo(ancho+12,alto+28)
ventana.moveTo((screen.width-ancho)/2,(screen.height-alto)/2//centra la ventana. 
//Eliminar si no se quiere centrar el popup
}
</script>
<script>
// Resto de KarlanKas para forosdelweb.com

var codigo=""
var tituloPuesto=""
anadir=" style='"
anadir+=(forzarAncho)?" width:"+forzarAncho+" px;":"";
anadir+=(forzarAlto)?" height:"+forzarAlto+" px;":"";
anadir+="' "
foto=-1;

function montarTabla(vamosAtras){
if(vamosAtras){foto-=(2*fotosPorFila*fotosPorColumna)}
if (foto<(imagen.length)){
    codigo="<center><table>"
    for (fila=0;fila<fotosPorFila;fila++){
        codigo+="<tr>"
        for (columna=0;columna<fotosPorColumna;columna++){
            foto+=1;
            if(foto<imagen.length){
                if(!imagen[foto].titulo){
                    imagen[foto].titulo="Imagen "+(1+foto)
                }
                
            }            codigo+="<td valign='top'"; 
            codigo+="align='center'";
            codigo+="style='width:"+(forzarAncho+10)+" px;height:"+(forzarAlto+30)+" px;overflow:auto'>";
            if (imagen[foto]){
                codigo+="<A HREF='javascript:afoto("+foto+")'";
                codigo+="onFocus='this.blur()'>";
                codigo+="<img border=0 src='"+imagen[foto].peque.src+"'"+anadir+">";
                codigo+="<br>"+imagen[foto].titulo+"<br><br></A>";
            }
            codigo+="</td>";}
            codigo+="</tr>";
}
            habilitadoAtras=(foto==((fotosPorFila*fotosPorColumna)-1))?"disabled":""
        habilitadoAlante=((foto+1)>=imagen.length)?"disabled":""
        codigo+="</table>";
        codigo+="<br>";
        codigo+="<input type='button' "
        codigo+=habilitadoAtras+" value='< Anteriores' onClick='montarTabla(true)'>";
        codigo+="<input type='button' "
        codigo+=habilitadoAlante+" value='Siguientes >'  onClick='montarTabla()'></center>";    }
    document.getElementById('tabla').innerHTML=codigo;
}
</script>
</head>

<body onLoad="montarTabla()"><center><h1><script>document.write(tituloGaleria)</script></h1></center>

<div id="tabla"></div>
</body>
</html> 
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 01/07/2003 a las 01:16
  #7 (permalink)  
Antiguo 30/06/2003, 05:17
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola a todos:

KarlanKas (Hola ):

Ya que planteas que te demos sugerencias, te diré una cosa que me ha pasado con una de mis galerías, y la forma de solucionarlo (al menos, como lo hice)...

He visto que usas innerHTML para incrustar la galería en la página... si bien la mayoría de los navegadores lo soportan, la versión 6.05 de opera no lo hace bien, entonces tenía mi galería normal, pero a la vez puse un link del tipo "pulse aquí si no se muestra la galería..." (o algo parecido), y desviaba la página a una que funcionaba con document.write(...)

Entonces, la sugerencia es en vez de usar innerHTML, usar directamente document.write en el sitio donde deba ir la galería...

Otra cosa que se me ocurre es que, según veo, haces una precarga de las imagenes, que creo innecesaria (new Image) sobre todo con las imágenes grandes, ya que de una galería, raras veces se amplían todas las fotos, y pienso que todavía debe haber mucha gente con conexiones lentas...

Como verás, son sugerencias que no cambian la funcionalidad de la galería, pero en mi opinión, mejorarían algo la versión final.

Saludos
  #8 (permalink)  
Antiguo 30/06/2003, 05:35
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Tienes razón caricatos (). Tal vez deba usar un ilayer (no me gusta tener que hacerlo) en vez de un innerHTML. Document.write directamente no puedo usarlo porque perdería el valor de la foto por la que voy (creo que debería empezar a usar cookies).

También tienes razón con respecto a la precarga de imágenes. Voy a ver que hago...

Gracias por tus sugerencias!

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #9 (permalink)  
Antiguo 30/06/2003, 06:12
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Espero que a berja2001 le sirva de algo esto...

No entiendo por qué perderás el valor de la foto, pero te voy a plantear como lo hago yo, y dime si te sirve.

En lugar de la linea (en la galería que propones)...

document.getElementById('tabla').innerHTML=codigo;

pongo...

return codigo;

y luego en la etiqueta que llamas tabla pongo otro tag script escribo el código...

<div id="tabla">
<script language=javascript>
document.write(montarTabla())
</script>
</div>

Me parece que las variables y demás que se declaran en el head siguen valiendo.

Ahora tengo que dejarlo, pero esta tarde lo miraré mejor.

Saludetes
  #10 (permalink)  
Antiguo 30/06/2003, 06:52
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Vamos a ver... si uso el document.write al montar la página todo sale a pedir de boca, pero date cuenta de que hay veces que habrá más fotos de las qeu pueda mostrarse en una tacada, por lo que habrá que pincharse sobre siguiente. Si hago lo que propones:

1.- En cuanto haga una segunda vez el document.write perderé todo el contenido de la página salvo lo que escriba ahí.

2.- perderé el valor de la variable foto que es el puntero que señala la última imagen mostrada.

No creo que sea viable. Es mejor o recargar la página pasando el valor de foto o utilizar cookies o utilizar iframes.

El problema está en que hay varias pantallas de fotos.

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #11 (permalink)  
Antiguo 30/06/2003, 10:52
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Si es una galería de una sola página, con write debería ser suficiente... siempre que se use al cargarse la página... Pensaba que se trataba de una galería básica con unas cuantas fotos.

Te diré la forma que he usado hasta hace unos pocos días, y como lo hago ahora...

Ciertamente he usado innerHTML, y en los browser que lo aceptaban iba muy bien, pero para los que no lo aceptaba, hice una página por cada una de las ídem de la galería... La principal usando innerHTML y las restantes con write y enlazando con los métodos tradicionales.

Actualmente (hace pocos días cambié la galería), paso valores por línea de comando (formulario con método get), y en el head resuelvo la página de galería, y en el body solo muestro la galería que corresponde...

... Ya sabes donde ver la página...

Lo de usar cookies, es otra opción válida, pero sabes que pueden estar inactivas. Hace poco tunait (hola ) puso en un mensaje un sistema que usaba el método de las cookies, y de forma alternativa (estando inactivas) trabajaba con algo parecido al método get.

Si te interesa, busco el mensaje para que lo veas.

Saludos
  #12 (permalink)  
Antiguo 30/06/2003, 11:02
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
No te preocupes... hace poco hice una página que se llamaba a si misma pasando datos por medio de get (en realidad construia ella misma la sintaxis... lo haré así a ver que tal...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #13 (permalink)  
Antiguo 30/06/2003, 17:07
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Siguiendo los consejos de caricatos (hola campeón!) he hecho una galería que no emplea el innerHTML... al no tener donde probarla no sé si va bien... os pido que lo comprobeis... creo que va bien, pero ya se sabe.

Cita:
ES IMPORTANTE QUE LA PÁGINA SE LLAME galeria.html PARA QUE FUNCIONE!!
Ahí va!
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<
html>
<
head>
    <
title>Galería de Imágenes</title>
    <
style>
    
A{font:normal 10px/10px verdana;
    
color:blue;
    
text-decoration:none;
    }
    
input{font:normal 10px/10px verdana}
    </
style>
<
script>

var 
ventana
var cont=0
imagen
=new Array;
primera=false;
function 
nueva(peque,grande,nombre){
this.peque=new Image;
this.grande=new Image;
if(!
nombre){this.titulo=false}
else{
this.titulo=nombre}
this.peque.src=peque
this
.grande.src=grande;
}
//----------------- VARIABLES EDITABLES ---------------------------

var tituloGaleria="Galería de imágenes"//Título por defecto de la galería

var titulopordefecto "Galería de imágenes" //texto por defecto
// a mostrar en la barra de título de la pop up en caso de omitir el argumento titulo

var fotosPorFila=3;

var 
fotosPorColumna=3;

var 
forzarAncho=80;//Pon el ancho al que quieres forzar las 
//imágenes en miniatura. Si pones 0 no forzará nada

var forzarAlto=80;//Pon el alto al que quieres forzar las imágenes
//en miniatura. Si pones 0 no forzará nada

// -----------------------------------------------------------------------------
// | Pon todas las imágenes que quieras                                         |
// | Sintaxis:                                                                  |
// |        imagen[n]=new nueva(<imagen pequeña>,<imagen grande>,[titulo]);     |
// -----------------------------------------------------------------------------

imagen[0]=new nueva('1b.jpg','1.gif','foto Añaer');
imagen[1]=new nueva('2b.jpg','2.jpg','Ya sabía yoo...');
imagen[2]=new nueva('3b.jpg','3.jpg','Con faldas y a lo loco');
imagen[3]=new nueva('4b.jpg','4.jpg');
imagen[4]=new nueva('1b.jpg','1.jpg','foto rara');
imagen[5]=new nueva('2b.jpg','2.jpg');
imagen[6]=new nueva('3b.jpg','3.jpg','los amigos');
imagen[7]=new nueva('4b.jpg','4.jpg');
imagen[8]=new nueva('1b.jpg','1.jpg','foto rara');
imagen[9]=new nueva('2b.jpg','2.jpg');
imagen[10]=new nueva('3b.jpg','3.jpg','los amigos');
imagen[11]=new nueva('4b.jpg','4.jpg');

//------------- NO EDITES A PARTIR DE AQUÍ SI NO SABES LO QUE HACES -----------------


//script por Tunait
//Modificado un poquiiiito por KarlanKas

function afoto(cual){
titulo=imagen[cual].titulo;
cual=imagen[cual].grande.src;
if(
cont==1){ventana.close();ventana=null}
if(
titulo==null){titulo=titulopordefecto}
ventana=window.open('','ventana','resizable=yes,scrollbars=no')
ventana.document.write('<html><head><title>');
ventana.document.write(titulo '</title></head>');
ventana.document.write('<body style="overflow:hidden"');
ventana.document.write('marginwidth="0" marginheight="0"');
ventana.document.write('topmargin="0" bottommargin="0"');
ventana.document.write('leftmargin="0" rightmargin="0"'); 
ventana.document.write('scroll="no" onUnload="opener.cont=0">');
ventana.document.write('<img onError="self.close()" src="' cual '" alt="'+titulo+'" ')
ventana.document.write('onLoad="opener.redimensionar(this.width, this.height)">')
if(
ventana&&!ventana.closed){ventana.document.close()}
cont++
}
function 
redimensionar(ancho,alto)
{
ventana.resizeTo(ancho+12,alto+28)
ventana.moveTo((screen.width-ancho)/2,(screen.height-alto)/2//centra la ventana. 
//Eliminar si no se quiere centrar el popup
}

// Resto de KarlanKas para forosdelweb.com

var codigo=""
var tituloPuesto=""
anadir=" style='"
anadir+=(forzarAncho)?" width:"+forzarAncho+" px;":"";
anadir+=(forzarAlto)?" height:"+forzarAlto+" px;":"";
anadir+="' "
foto=-1;

function 
montarTabla(vamosAtras){

if(!
vamosAtras){vamosAtras=false}

        if(
primera){
                    
location.href="galeria.html?foto="+foto+"&vamosAtras="+vamosAtras;
                    }
        else{
primera=true;
            
URL=location.href;
            
interrogacion=URL.indexOf("?");
            if(
interrogacion!=-1){
            
datos=URL.substring(interrogacion,URL.length);
            
partes=datos.split("&");
            
foto=partes[0].substring(6,partes[0].length);
            
foto=parseInt(foto)
            
vamosAtras=partes[1].substring(11,partes[1].length);
            
            }

if(
vamosAtras=="true"){foto-=(2*fotosPorFila*fotosPorColumna)}
if (
foto<(imagen.length)){
    
codigo="<center><table>"
    
for (fila=0;fila<fotosPorFila;fila++){
        
codigo+="<tr>"
        
for (columna=0;columna<fotosPorColumna;columna++){
            
foto+=1;
            if(
foto<imagen.length){
                if(!
imagen[foto].titulo){
                    
imagen[foto].titulo="Imagen "+(1+foto)
                }
                
            }
            
codigo+="<td valign='top'"
            
codigo+="align='center'";
            
codigo+="style='width:"+(forzarAncho+10)+" px;height:"+(forzarAlto+30)+" px;overflow:auto'>";
            if (
imagen[foto]){
                
codigo+="<A HREF='javascript:afoto("+foto+")'";
                
codigo+="onFocus='this.blur()'>";
                
codigo+="<img border=0 src='"+imagen[foto].peque.src+"'"+anadir+">";
                
codigo+="<br>"+imagen[foto].titulo+"<br><br></A>";
            }
            
codigo+="</td>";}
            
codigo+="</tr>";
        }
            
habilitadoAtras=(foto==((fotosPorFila*fotosPorColumna)-1))?"disabled":""
        
habilitadoAlante=((foto+1)>=imagen.length)?"disabled":""
        
codigo+="</table>";
        
codigo+="<br>";
        
codigo+="<input type='button' "
        
codigo+=habilitadoAtras+" value='< Anteriores' onClick='montarTabla(true)'>";
        
codigo+="<input type='button' "
        
codigo+=habilitadoAlante+" value='Siguientes >'  onClick='montarTabla()'></center>";
    }
    return 
codigo;
}}
</script>
</head>

<body><center><h1><script>document.write(tituloGaleria)</script></h1></center>
<div id="tabla"><script>document.write(montarTabla())</script></div>
</body>
</html> 
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 01/07/2003 a las 01:20
  #14 (permalink)  
Antiguo 01/07/2003, 00:33
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Por cierto, se me olvidaba avisar que aunque el código esté entre la leyenda "PHP" es Javascript, por lo que si se quiere importar en un editor de páginas web no hay más que copiarlo y pegarlo en la pestaña HTML.

Las instrucciones de manejo son bien sencillas:

en fotosPorFila hay que poner cuantas fotos quieres por linea (en horizontal).

En fotosPorColumna debes poner cuantas fotos quieres por columna (en vertical).

En forzarAncho dices el ancho que quieres que tengan todas las imágenes pequeñas de la galería. Si quieres que tengan su tamaño original pon 0 (cero). Si fuerzas el tamaño tal vez la imagen pequeña pierda calidad.

En forzarAlto indicas el alto que quieres que tengan todas las imágenes pequeñas de la galería. Si quieres que tengan su tamaño original pon 0 (cero). Si fuerzas el tamaño tal vez la imagen pequeña pierda calidad.

Y ahora para poner las imágenes que quieras cambia los:

"imagen[0]=new nueva('1b.jpg','1.jpg','foto Añaer');"

por tus imágenes teniendo en cuenta que:

para poner tus fotos debes poner siempre:
imagen[el numero que corresponda de forma correlativa y empezando por el cero]=new nueva(ruta de la imagen pequeña entre comillas,ruta de la imagen grande tb entre comillas, título de la foto (esto es opcional));

Lo que está en negrita no lo puedes cambiar y debes asegurarte que todo queda en una línea.

Es decir:

imagen[n]=new nueva(<imagen pequeña>,<imagen grande>,[titulo]);

Quino, si tienes cualquier problema no dudes en preguntar!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #15 (permalink)  
Antiguo 01/07/2003, 01:19
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola KarlanKas:

Lo he probado en netscape 7 y opera 7 (supongo que en explorer lo habrás probado tú y va bien)

Lo que me ha pasado es que lo probé en una carpeta donde ya tenía mi galeria.html, y le hice un arreglillo para que funcionara en cualquier página...

Donde pone:

location.href="galeria.html?foto="+foto+"&vamosAtr as="+vamosAtras;

puse:

location.href=location.href.split("?")[0] + "?foto="+foto+"&vamosAtras="+vamosAtras;

Supongo que habrá más formas de obtener el mismo resultado, pero puse lo primero que se me ocurrió

... y ahora el informe:

En Netscape 7 va bien, pero los popups salen con barra de scroll vertical... y las miniaturas salen con su tamaño original
En Opera 7 no redimensiona...

Para forzar las dimensiones en Netscape he probado quitarle el espacio que hay al final de estas dos líneas:

anadir+=(forzarAncho)?" width:"+forzarAncho+" px;":"";
anadir+=(forzarAlto)?" height:"+forzarAlto+" px;":"";
... " px;" => "px;"

y de esta manera funciona bien.

Saludos
  #16 (permalink)  
Antiguo 01/07/2003, 02:05
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Oye! Qué buena idea lo del split para sacar el location.href! Ahora mismo pongo los cambios. Parece que por fín vamos a hacer una galería! Participa tunait(hola leporcia!), participas tú, participa un alienígena... quien quiera puede participar más, eh?

Lo del espacio lo sabía... y tuve cuidado de ponerlo... al principio. Tal vez al hacer mil cambios se me pasó eso...

Y lo de los pop ups... he debido cambiar algo sin querer porque el script de tunait funciona a las mil maravillas.

Voy a ver si cambiando un par de cosas funciona lo de las miniaturas...

Muchas gracias por tu informe caricatos !

[/font]
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #17 (permalink)  
Antiguo 01/07/2003, 02:28
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
A ver si ahora...


Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Galería de Imágenes</title>
    <style>
    A{font:normal 10px/10px verdana;
    color:blue;
    text-decoration:none;
    }
    input{font:normal 10px/10px verdana}
    </style>
<script>

var ventana
var cont=0
imagen=new Array;
primera=false;
function nueva(peque,grande,nombre){
this.peque=new Image;
this.grande=new Image;
if(!nombre){this.titulo=false}
else{this.titulo=nombre}
this.peque.src=peque
this.grande.src=grande;
}
//----------------- VARIABLES EDITABLES ---------------------------

var tituloGaleria="Galería de imágenes"//Título por defecto de la galería

var titulopordefecto = "Galería de imágenes" //texto por defecto
// a mostrar en la barra de título de la pop up en caso de omitir el argumento titulo

var fotosPorFila=3;

var fotosPorColumna=3;

var forzarAncho=80;//Pon el ancho al que quieres forzar las 
//imágenes en miniatura. Si pones 0 no forzará nada

var forzarAlto=80;//Pon el alto al que quieres forzar las imágenes
//en miniatura. Si pones 0 no forzará nada

// -----------------------------------------------------------------------------
// | Pon todas las imágenes que quieras                                         |
// | Sintaxis:                                                                  |
// |        imagen[n]=new nueva(<imagen pequeña>,<imagen grande>,[titulo]);     |
// -----------------------------------------------------------------------------

imagen[0]=new nueva('1b.jpg','1.gif','foto Añaer');
imagen[1]=new nueva('2b.jpg','2.jpg','Ya sabía yoo...');
imagen[2]=new nueva('3b.jpg','3.jpg','Con faldas y a lo loco');
imagen[3]=new nueva('4b.jpg','4.jpg');
imagen[4]=new nueva('1b.jpg','1.jpg','foto rara');
imagen[5]=new nueva('2b.jpg','2.jpg');
imagen[6]=new nueva('3b.jpg','3.jpg','los amigos');
imagen[7]=new nueva('4b.jpg','4.jpg');
imagen[8]=new nueva('1b.jpg','1.jpg','foto rara');
imagen[9]=new nueva('2b.jpg','2.jpg');
imagen[10]=new nueva('3b.jpg','3.jpg','los amigos');
imagen[11]=new nueva('4b.jpg','4.jpg');

//------------- NO EDITES A PARTIR DE AQUÍ SI NO SABES LO QUE HACES -----------------


//script por Tunait
//Modificado un poquiiiito por KarlanKas

function afoto(cual){
titulo=imagen[cual].titulo;
cual=imagen[cual].grande.src;
if(cont==1){ventana.close();ventana=null}
if(titulo==null){titulo=titulopordefecto}
ventana=window.open('','ventana','resizable=yes,scrollbars=no')
ventana.document.write('<html><head><title>');
ventana.document.write(titulo + '</title></head>');
ventana.document.write('<body style="overflow:hidden"');
ventana.document.write('marginwidth="0" marginheight="0"');
ventana.document.write('topmargin="0" bottommargin="0"');
ventana.document.write('leftmargin="0" rightmargin="0"'); 
ventana.document.write('scroll="no" onUnload="opener.cont=0">');
ventana.document.write('<img onError="self.close()" src="' + cual + '" alt="'+titulo+'" ')
ventana.document.write('onLoad="opener.redimensionar(this.width, this.height)">')
if(ventana&&!ventana.closed){ventana.document.close()}
cont++
}
function redimensionar(ancho,alto)
{
ventana.resizeTo(ancho+11,alto+30)
ventana.moveTo((screen.width-ancho)/2,(screen.height-alto)/2) //centra la ventana. 
//Eliminar si no se quiere centrar el popup
}
</script>
<script>
// Resto de KarlanKas para forosdelweb.com

var codigo=""
var tituloPuesto=""
anadir=" style='"
anadir+=(forzarAncho)?" width:"+forzarAncho+"px;":"";
anadir+=(forzarAlto)?" height:"+forzarAlto+"px;":"";
anadir+="' "
anadir2=" "
anadir2+=(forzarAncho)?" width="+forzarAncho:"";
anadir2+=(forzarAlto)?" height="+forzarAlto:"";

foto=-1;

function montarTabla(vamosAtras){

if(!vamosAtras){vamosAtras=false}

        if(primera){
location.href=location.href.split("?")[0] + "?foto="+foto+"&vamosAtras="+vamosAtras;
                    }
        else{primera=true;
            URL=location.href;
            interrogacion=URL.indexOf("?");
            if(interrogacion!=-1){
            datos=URL.substring(interrogacion,URL.length);
            partes=datos.split("&");
            foto=partes[0].substring(6,partes[0].length);
            foto=parseInt(foto)
            vamosAtras=partes[1].substring(11,partes[1].length);
            
            }

if(vamosAtras=="true"){foto-=(2*fotosPorFila*fotosPorColumna)}
if (foto<(imagen.length)){
    codigo="<center><table>"
    for (fila=0;fila<fotosPorFila;fila++){
        codigo+="<tr>"
        for (columna=0;columna<fotosPorColumna;columna++){
            foto+=1;
            if(foto<imagen.length){
                if(!imagen[foto].titulo){
                    imagen[foto].titulo="Imagen "+(1+foto)
                }
                
            }
            codigo+="<td valign='top'"; 
            codigo+="align='center'";
            codigo+="style='width:"+(forzarAncho+5)+" px;height:"+(forzarAlto+30)+" px;overflow:auto'>";
            if (imagen[foto]){
                codigo+="<A HREF='javascript:afoto("+foto+")'";
                codigo+="onFocus='this.blur()'>";
                codigo+="<img border=0 src='"+imagen[foto].peque.src+"'"+anadir+anadir2+">";
                codigo+="<br>"+imagen[foto].titulo+"<br><br></A>";
            }
            codigo+="</td>";}
            codigo+="</tr>";
        }
            habilitadoAtras=(foto==((fotosPorFila*fotosPorColumna)-1))?"disabled":""
        habilitadoAlante=((foto+1)>=imagen.length)?"disabled":""
        codigo+="</table>";
        codigo+="<br>";
        codigo+="<input type='button' "
        codigo+=habilitadoAtras+" value='< Anteriores' onClick='montarTabla(true)'>";
        codigo+="<input type='button' "
        codigo+=habilitadoAlante+" value='Siguientes >'  onClick='montarTabla()'></center>";
    }
    return codigo;
}}
</script>
</head>

<body><center><h1><script>document.write(tituloGaleria)</script></h1></center>
<div id="tabla"><script>document.write(montarTabla())</script></div>
</body>
</html>
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #18 (permalink)  
Antiguo 01/07/2003, 03:59
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Bien:

Las miniaturas ya están bien, pero sigue apareciendo la barra de scroll. y opera no redimensiona. (Lo de opera no sé si tendrá arreglo)

Intenté alguna modificación para evitar la barra y lo que más se acercó a la solución fué redimensionar 2 veces... ...
La primera con los valores normales y la segunda calculando la diferencia entre el ancho que quedó en el body y el ancho que debía ser:

var nuevoAncho = ventana.document.body.clientWidth;
...

y resizeTo(ancho + (nuevoAncho - ancho), alto...
De esta forma, la altura quedó bien, pero se desajustó la anchura.

Seguiré investigando, y si averiguo algo, te aviso.

Saludos
  #19 (permalink)  
Antiguo 01/07/2003, 04:08
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Es extraño... a mi en Netscape 7.0 me va bien... no aparece ninguna barra...

tunaiiiittt!!!! Qué se te ocurre??
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #20 (permalink)  
Antiguo 01/07/2003, 04:32
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola KarlanKas:

Yo también uso la versión 7, y volví a copiar el código que pusiste para ver si me había equivocado en algo, pero sigue saliendo la barra... Tal vez sea por usar otros tamaños .
Subí la página para que la chequees, y me digas si te aparecen a ti.
La dirección es ésta: www.sucaricatura.com\_Famosos\temp.html
Te advierto que son caricaturas.

Saludos
  #21 (permalink)  
Antiguo 01/07/2003, 05:00
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
fíjate si tu ns7 al abrir la popup tiene arriba una barra de herramientas plegada (se ve una pequeña flechita arriba a la izquierda).

Teniendo un overflow:hidden no debiera haber problema en ns7, salvo por la propia configuración del navegador.

pero parece que con esa barra pone scroll automáticamente y se carga el area de visualización.

Si te muestra esa flechita en la ventana, cierrala verás como entonces va bien
  #22 (permalink)  
Antiguo 01/07/2003, 05:02
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Mira la captura de pantalla
  #23 (permalink)  
Antiguo 01/07/2003, 05:13
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
A mí también me sale la barra de desplazamiento, pero aumenté un poco el tamaño de la ventana y desapareció. ¿Por qué no probáis, en lugar de 11 y 30 pixels, a sumar 15 y 35 por ejemplo?

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #24 (permalink)  
Antiguo 01/07/2003, 05:15
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Doy por resuelto el problema. Y, por tanto, finalizada la fase de desarrollo inicial... es decir, estaríamos en la versión 1.0. Voy a volver a poner los pixels que tenía tunait porque con la modificación se ve un borde blanco...

Un saludo!

Opss! Bravenap... no creo que sea esa la solución... a mi me sale bien! no entiendo cual puede ser el fallo. He probado la página de caricatos (por cierto, muy graciosas las caricaturas) y va bien, sin barras ni nada... si ponemos lo que dices el marco blanco va a ser enorme y va a quedar feo!
Podríamos poner
Código:
if(navigator.owner=="caricatos"|| navigator.owner=="Bravenap"){
 pixelsAAnadirX+=5;
pixelsAAnadirY+=5;
}
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 01/07/2003 a las 05:24
  #25 (permalink)  
Antiguo 01/07/2003, 05:28
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola tunait:

Son cosas curiosas...
No sabía lo de la barra, pero no es eso.
Subí una captura que hice y se puede ver que no está esa barra/pestaña.
Puedes verlo aquí: http://www.sucaricatura.com/_Famosos/captura.jpg

No sé que tendré configurado mal, o tal vez se trate una una versión de netscape con algún fallo.

Si me entero de las razones, las haré saber.

Saludos
  #26 (permalink)  
Antiguo 01/07/2003, 05:33
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
No será la versión del SO... me da que WinXP tiene la barra de título más alta uqe el resto de los windows...
caricatos ¿podrías hacer una pruqeba? puedes poner como configuración de ventanas la clasica de windows y probar el script? me da qeu va a ser eso.

Al final voy a tener que hacer lo que he dicho en broma.
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #27 (permalink)  
Antiguo 01/07/2003, 05:39
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Me alegra compartir condicional con caricatos
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #28 (permalink)  
Antiguo 01/07/2003, 05:39
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Puede ser también que tienes aplicado un tema que no es el predeterminado en Netscape.

Fíjate en mi captura de pantalla. Tengo el aspecto (tema) predeterminado de netscape.

Por lo que veo el interfaz de tu NS tiene más grosor en la barra de título que le resta el espacio a la imagen y pone entonces la barra de scroll.

Ahora, lo vergonzoso es que a pesar del overflow hidden la ponga
  #29 (permalink)  
Antiguo 01/07/2003, 05:41
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
KarlanKas:

confirmado ...

Ya sabemos la razón...
... y ¿Quién tiene la solución? (me salió una rima )

Saludos
  #30 (permalink)  
Antiguo 01/07/2003, 05:45
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Cita:
if(navigator.owner=="caricatos"|| navigator.owner=="Bravenap"){
pixelsAAnadirX+=5;
pixelsAAnadirY+=5;
}

Última edición por tunait; 22/01/2009 a las 08:32
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 15:54.