Comunidad de diseño web y desarrollo en internet online

galeria de imagenes aleatorias

Citar            
MensajeEscrito el 01 Nov 2010 08:02 pm
Hola a todos,

A ver si me podeis ayudar con un script que no consigo realizar. El script tendría que cargar varias imagenes una al lado de la otra como si fuera una galeria de imagenes (hasta aquí lo tengo controlado)... pero necesito que las imagenes se cargen en diferente orden, aleatoriamente, cada vez que se refresque la página.
Ahora mismo yo tengo esto:

Código Javascript :

var indice = 0;
enlace = new Array();
enlace[0] = "imagen1.jpg";
enlace[1] = "imagen2.jpg";
enlace[2] = "imagen3.jpg";
enlace[4] = "imagen4.jpg";
enlace[5] = "imagen5.jpg";
indice = Math.random() * (enlace.length);
indice = Math.floor(indice);
for (i=1;i<=enlace.length;i++) {
if (indice == enlace.length) indice = 0;
document.write(enlace[indice]);
indice++;
}


Con esto consigo que se cambie la primera imagen que se muestra, pero el orden sigue siendo el mismo y yo lo que quisiera es que el orden sea totalmente aleatorio....

Gracias de antemano, un saludo.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

msie8
Citar            
MensajeEscrito el 02 Nov 2010 12:38 am
Para que "indice" sea aleatorio en cada iteración, deberás generarlo dentro del for. Como lo estás haciendo sólo lo crea una vez y luego sigue el orden, por eso sólo te funciona con la primera imagen y no con las demás

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 02 Nov 2010 08:29 am
Hola The Fricky!, gracias por contestarme.
He aplicado al script la solucion que me propones y me funciona bien, pero me surge otro problema... al hacer "indice" aleatorio en cada iteración se carga siempre alguna imagen repetida y me elimina la que sobra. Yo creo que la solución podría ser una funcion que me desordene el array aleatoriamente, pero no se como lo podría hacer, si me pudieras orientar en este sentido te estaría eternamente agradecido.
Un saludo.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

msie8
Citar            
MensajeEscrito el 02 Nov 2010 02:41 pm
hola, si lo que quieres es "ordenar" aleatoriamente el array enlace, puedes usar el método sort así:

Código :

enlace.sort(function(){
    return Math.random() - Math.random();
})


así no se repetirá ninguna imagen.

Por sney2002

14 de clabLevel



Genero:Masculino  

Puerto Carreño - Vichada

chrome
Citar            
MensajeEscrito el 02 Nov 2010 06:42 pm
GRACIAS sney2002!!!!

Con el método sort he podido solucionar el problema, ahora está el script perfecto!!
Un saludo.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.