Foros del Web » Programando para Internet » Javascript »

Error al copiar imagen aleatoria

Estas en el tema de Error al copiar imagen aleatoria en el foro de Javascript en Foros del Web. He visto en una web ( http://www.scummvm.org) , un ¿album de fotos? que me ha gustado, en el que, a partir de un valor aleatorio, ...
  #1 (permalink)  
Antiguo 07/10/2005, 11:56
 
Fecha de Ingreso: marzo-2005
Mensajes: 62
Antigüedad: 19 años, 8 meses
Puntos: 0
Error al copiar imagen aleatoria

He visto en una web (http://www.scummvm.org), un ¿album de fotos? que me ha gustado, en el que, a partir de un valor aleatorio, se muestra una imagen aleatoria que corresponde al valor anterior. El nombre de la imagen es scummvm_xx.jpg (donde xx es un numero entero).

me explico: abres la página y carga (por ejemplo) la foto scummvm_46.jpg o la 57, o la 94... no sé de que depende este valor aleatorio... aunque tampoco me importa mucho...

Decidido a copiarlo, lo he traspasado a mi blog con mis propias fotos pero me ha surgido un problema: Todo funciona perfectamente salvo que no empieza en una imagen aleatoria... sino en la que está establecida en el src=



viendo esto, siempre me empieza en la foto inter981_4.jpg que es la que obliga a a cargar... ¿como puedo hacer que sea aleatoria igual que en la de www.scummvm.org ?

no sé como puedo saber qué código han utilizado al crear la página, porque si la abro con el Frontpage, ahí aparece el valor de la foto que hay en ese momento en la web.

pd: no tengo mucha idea de javascript... pero copiando las cosas casi siempre consigo que funcionen y aprendo mucho...
  #2 (permalink)  
Antiguo 09/10/2005, 05:45
 
Fecha de Ingreso: marzo-2005
Mensajes: 62
Antigüedad: 19 años, 8 meses
Puntos: 0
una ayudita, pleaaaase...

¿no se puede saber cual es exactemente el código de la página principal de www.scummvm.org antes de que le asigne una imagen?

Quizás debería poner este post en el de html en lugar del de java?
  #3 (permalink)  
Antiguo 09/10/2005, 09:50
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola:

No... es javascript (no java)

un ejemplo de imagen aleatoría sería:


<script>
var imagenes = ["imagen1.jpg",
"imagen2.jpg",
"imagen3.jpg"];

function aleatorio() {
document.images.imagen.src = imagenes[Math.floor * imagenes.length];
</script>

El script definido en el head... en el tag body usarlo:
<body onload="aleatorio()">

y en cuerpo poner la imagen:
<img src="" name="imagen" />

Saludos

}
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 09/10/2005, 11:47
 
Fecha de Ingreso: marzo-2005
Mensajes: 62
Antigüedad: 19 años, 8 meses
Puntos: 0
no funciona nada... :D
errores por todos laos :(

¿había dicho que soy novato? he copiado todo tal y como me has dicho cambiando los nombres de las fotos... y ná.
  #5 (permalink)  
Antiguo 09/10/2005, 12:59
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 9 meses
Puntos: 9
Hola a todos.

Solo hay que cambiar un par de cositas, la primera la llave de cierre de la funcion que a caricatos se le ha desplazado al final del mensaje, por el copy-paste sin "premeditacion" , seguro. Y lo segundo es la funcion matematica para aleatorizar el nº de imagen que no resultaba .

<script>
varimagenes=["imagen1.jpg",
"imagen2.jpg",
"imagen3.jpg"];

functionaleatorio(){
document.images.imagen.src=imagenes[Math.floor(imagenes.length*Math.random())+1];
}
</script>
<bodyonload="aleatorio()">

<imgsrc=""name="imagen" />
  #6 (permalink)  
Antiguo 09/10/2005, 13:43
 
Fecha de Ingreso: marzo-2005
Mensajes: 62
Antigüedad: 19 años, 8 meses
Puntos: 0
Ya casi funciona... pero hay tres problemas:
a) la imagen 1 nunca la carga ¿¿ ??
b) al pulsar varias veces en recargar la página, a veces sale una foto vacía y si miro en las propiedades de la foto, la llama undefined; supongo que será la 1 ¿no? por más que busco... no veo deonde está el fallo...
c) lo ha hecho completamente incompatible con el script que ya tenía que permitía avanzar y retroceder fotos.

echadle un vistacillo en:
http://www.xente.mundo-r.com/ra2yuri/inter981/perfil

todo comprimido en un zip en:
http://www.xente.mundo-r.com/ra2yuri...fil/perfil.zip
  #7 (permalink)  
Antiguo 09/10/2005, 13:47
 
Fecha de Ingreso: marzo-2005
Mensajes: 62
Antigüedad: 19 años, 8 meses
Puntos: 0
otro fallo... :(

al pinchar sobre la foto que me permitía verla en un popup... ahora se me abre siempre la misma foto: ¡¡ la 5 !! aunque en ese momento esté la 4 o cualquier otra en pantalla...

Ya sé que soy un coñazo...
lo sientooooo

no sería más facil que alguien que supiera, le echara un vistazo a la screenshot de la página principal de www.scummvm.org (ahí ya está todo hecho y cuadrado)... no es añadir más código... es dar con el "truco" ...
  #8 (permalink)  
Antiguo 09/10/2005, 13:55
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 9 meses
Puntos: 9
Si hay un error quita el +1.

He visto tu pagina, siempre muestra la 5 porque le tienes dicho que la muestre, quita esta orden:

i_jn = 5;


creo que con eso debe bastar.

por otra parte ,esta linea:

<img
imgsrc=""name="imagen"width="171"height="373"
style="margin: 5px"
name="img_jn"alt="Click para ver a Tamaño completo">


le aplicas dos veces el nombre, no se si esto creara alguna confusion.

Última edición por programeitor; 09/10/2005 a las 14:05
  #9 (permalink)  
Antiguo 09/10/2005, 17:42
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola:

Bueno, tuve que salir y luego vi el error... (en mi ejemplo)

document.images.imagen.src = imagenes[Math.floor(Math.random() * imagenes.length)];

programeitor: el "+1" sería necesario si en vez de Math.floor hubiese utilizado Math.round

Por lo demás, el ejemplo que puse lo he comprobado.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 09/10/2005, 18:50
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 9 meses
Puntos: 9
Hola caricatos. Perdon por las correcciones, pero tenia que contestar y continue con tu ejemplo, pues era valido. Espero no haberme entrometido. Saludos-.
  #11 (permalink)  
Antiguo 10/10/2005, 01:05
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Cita:
Iniciado por programeitor
Hola caricatos. Perdon por las correcciones, pero tenia que contestar y continue con tu ejemplo, pues era valido. Espero no haberme entrometido. Saludos-.
No hace falta que te disculpes... Sé que quieres ayudar y a mi no me importa que "te entromezcas".

Saludetes
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #12 (permalink)  
Antiguo 11/10/2005, 03:19
 
Fecha de Ingreso: marzo-2005
Mensajes: 62
Antigüedad: 19 años, 8 meses
Puntos: 0
Aqui está de nuevo el pesado...

he hecho lo que me habéis dicho... y ya carga perfectamente una imagen aleatoria...

problemas:
- carga aleatoriamente por ejemplo la imagen 3. Pulso en el botón Siguiente y empieza en la 1, en vez de seguir con la 4. (igual que al pulsar en Anterior que va a la 5): es decir... que empieza desde el principio de las imágenes en vez de empezar en la que estaba.

- Sigue sin abrir el popup con la imagen completa al pulsar sobre la imagen me da error.

Gracias en la medidad de lo posible.
  #13 (permalink)  
Antiguo 11/10/2005, 14:44
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 9 meses
Puntos: 9
Hola, he puesto todo el codigo junto el html y el archivo js screenshost.js, el archivo css styles.css al que se hace referencia en la funcion openWin no lo he encontrado, seguramente le de una presentacion a la imagen en el popup.

Tanto las imagenes como el css si lo tienes tienen que estar en el mismo directorio que este html.

Tenia varios fallos importantes, que he reparado, todavia admite mas depuracion, pero eso ya te lo voy a dejar a ti.

<html>
<HEAD>
<script>
var imagenes = [
"inter981_1.jpg",
"inter981_2.jpg",
"inter981_3.jpg",
"inter981_4.jpg",
"inter981_5.jpg"
];
function aleatorio() {
i_jn=Math.floor (imagenes.length * Math.random())+1
document.images.imagen.src = "inter981_"+i_jn+".jpg";
status=i_jn
}
function openWin(fileToOpen,nameOfWindow,width,height) {
myWindow = window.open("",nameOfWindow,"menubar=no,scrollbars =no,status=no,width="+width+",height="+height);
myWindow.document.open();
myWindow.document.write('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">\n')
myWindow.document.write('<html><head><title>Screen Shot Viewer</title><link rel="stylesheet" href="styles.css" type="text/css"></head>')
myWindow.document.write('<body><a href="javascript:self.close();"><img src="'+ fileToOpen +'"></a></body></html>');
myWindow.document.close();
status=i_jn
}
function scrshot_jn(x,n) {
i_jn += n;
if (i_jn > x) i_jn = 1;
if (i_jn < 1) i_jn = x;
document.images.imagen.src = "inter981_" + i_jn + ".jpg";
status=i_jn
}
</script>
<STYLE type="text/css">
A:active {
FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Tahoma; TEXT-DECORATION: none
}
A:visited {
FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Tahoma; TEXT-DECORATION: none
}
A:hover {
FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: orange; FONT-FAMILY: Tahoma; TEXT-DECORATION: none
}
.credits {
FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Tahoma
}
.textonormal {
FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Tahoma
}
.textonormalnegrita {
FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Tahoma
}
A:link {
FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Tahoma; TEXT-DECORATION: none
}
</STYLE>
</HEAD>
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0"body onload="aleatorio()">
<div align="center">
<table border="0" width="780">
<tr>
<td align="center" valign="top">
<table class=profilestuff border=0 cellspacing=20>
<tr>
<td valign=top style="padding-top:3px;">
<td>
<table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan="3">
<!-- We use a height of 483 instead of 480 to workaround something which
appears to be a bug in Mozilla? -->
<a href="javascript:openWin('inter981_'+i_jn+'.jpg',' scummvm',640,483);"
onMouseOver="window.status='Click para ver a tamaño completo';return true;"
onMouseOut="window.status='';return true;"><img
name="imagen" width="171" height="373"
style="margin: 5px"
alt="Click para ver a Tamaño completo"></a>
</td></tr>
<tr>
<td align=left>
<a href="javascript:scrshot_jn(imagenes.length,-1);"><< Anterior</a>
<!-- Entre paréntesis va el número de fotos totales y una a restar (para ir a la prévia) -->
</td>
<td></td>
<td align=right>
<a href="javascript:scrshot_jn(imagenes.length,+1);"> Siguiente >></a>
<!-- Entre paréntesis va el número de fotos totales y una a sumar (para ir a la siguiente) -->
</td>
</tr>
</table>
</td>
<br></td>
<td valign=top class="textonormal" align="left">
<table border=0 class=MDStuff width="442">
<tr><td colspan=2 style='font-size:150%;'>
<b><font size="5" color="#C0C0C0">inter981</font></b></td></tr><tr>
<td class=textonormalnegrita nowrap width="88" align="left" valign="top">
<font size="2" color="#C0C0C0">Nombre: </font> </td>
<td class=textonormal width="348">
<font size="2">Alejandro C.
L.</font></td></tr><tr>
<td class=textonormalnegrita nowrap width="88" align="left" valign="top">
<font size="2" color="#C0C0C0">Edad: </font> </td>
<td class=textonormal width="348"><font size="2">29</font></td></tr><tr>
<td class=textonormalnegrita nowrap width="88" align="left" valign="top">
<font size="2" color="#C0C0C0">Sexo: </font> </td>
<td class=textonormal width="348">
<font size="2">Varón</font></td></tr><tr>
<td class=textonormalnegrita nowrap width="88" align="left" valign="top">
<font size="2" color="#C0C0C0">Estado civil: </font> </td>
<td class=textonormal width="348">
<font size="2">¿pseudo-casado? </font> </td></tr><tr>
<td class=textonormalnegrita nowrap width="88" align="left" valign="top">
<font size="2" color="#C0C0C0">Ubicación: </font> </td>
<td class=textonormal width="348"><font size="2">La Coruña, España</font></td></tr><tr>
<td class=textonormalnegrita nowrap width="88" align="left" valign="top">
<font size="2" color="#C0C0C0">Ocupación: </font> </td>
<td class=textonormal width="348"><font size="2">Diseñador gráfico</font></td></tr><tr>
<td class=textonormalnegrita nowrap width="88" align="left" valign="top">
<font size="2" color="#C0C0C0">Aficiones: </font> </td>
<td class=textonormal width="348">
<font size="2">De todo un poquillo</font></td></tr>
</table>
</td>
</tr>
</table>
<p>&nbsp;</p>

</td>
</tr>
</table>
</div>
</body>
</html>

Última edición por programeitor; 11/10/2005 a las 14:56
  #14 (permalink)  
Antiguo 11/10/2005, 15:07
 
Fecha de Ingreso: marzo-2005
Mensajes: 62
Antigüedad: 19 años, 8 meses
Puntos: 0
Tío eres Dios !!
Salvo un pequeño defecto que he visto en el openWin('inter981_'+i_jn+'.jpg',' scummvm',640,483) que daba error y pude arreglar con mis minúsculos conocimientos de javascript, el resto es exactamente lo que quería !!

MUCHAS GRACIAS.
  #15 (permalink)  
Antiguo 11/10/2005, 15:32
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 9 meses
Puntos: 9
Vale, nada hombre, espero que aprendas rapido.
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:23.