Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/11/2010, 14:09
furoya
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años, 1 mes
Puntos: 317
Respuesta: galeria de imagenes aleatorias

Hola gebo, caricatos :

Este mensaje me trajo recuerdos de cuando el IE 5 (o Win 98, ya no estoy seguro) desconocía algunos métodos para array y terminamos inventando prototype's y demás para hacerlos compatibles. Al final encontré el tema

Manipular array

Fue un "Volver a Vivir", me encontré contigo, caricatos, con Gul Dukat, kepawe, y hasta después se sumó Neuron_376.
Seguramente algo te va a servir, gebo. Aunque hoy ya todos los métodos funcionan en los últimos navegadores, creo que el "shuffle" no lo agregaron.

De todas formas, el ejemplo que pusiste tiene un par de errores de concepto. Y redundancias. También "idas y vueltas" innecesarias.
Supongo que si te dejo un ejemplo que funcione lo vas a saber desarmar para adaptarlo a tu página. Lo que uso es un while, que me parece más eficiente en estos casos que un bucle for.
Por supuesto que splice() destruye el array original, porque le extrae (al azar, por Math.random()) un elemento en cada vuelta; pero como supongo que una vez cargado el documento ya no vas a usar de nuevo esa lista, el mecanismo sirve.

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<title>DESORDENA IMÃGENES.</title>
<script type="text/javascript">
var lista = "";
var enlace = new Array();
enlace[0] = (new Image()).src = "http://img4.imageshack.us/img4/9595/fishes.th.jpg";
enlace[1] = (new Image()).src = "http://img338.imageshack.us/img338/7682/relojvillalongafurlongm.th.jpg";
enlace[2] = (new Image()).src = "http://img358.imageshack.us/img358/5474/screenshot036el.th.jpg";
enlace[3] = (new Image()).src = "http://img329.imageshack.us/img329/1169/img0420jn3.th.jpg";
enlace[4] = (new Image()).src = "http://img201.imageshack.us/img201/9135/ichatimage3259540742dy5.th.jpg";
enlace[5] = (new Image()).src = "http://img9.imageshack.us/img9/3651/marioquinterosc.th.jpg";

while ((enlace.length) > 0) {
var indice = Math.floor(Math.random() * enlace.length);
var otraImag = enlace.splice(indice, 1);

//PARA ENLACE  IMAGESHACK
var orig = (""+otraImag+"").split(".th").join("");
lista += "<a href="+ orig +" title='"+ orig +"'>";

lista += "<img src="+ otraImag +" alt='"+ otraImag +"'>";

//PARA ENLACE  IMAGESHACK
lista += "</a> ";
}

document.write(lista);
</script>

<style type="text/css">
body {text-align: center; }
</style>
</head>
<body>

</body>
</html>
Le agregué además los enlaces por si alguien quiere ver las imágenes originales y no las thumbnails; están marcados con comentarios para que los saques si no te sirven.