Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/10/2012, 13:44
Avatar de IsaBelM
IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
[APORTE] rotador aleatorio sin repetición pocas imágenes

hacer un rotador aleatorio es sencillo. pero si el número de elementos es pequeño y queremos que no se repitan sucesivamente, se nos complica un poco

la idea esta sacada de este tema

para aquellos que aún no tienen claro el problema, veamoslo con un ejemplo
Cita:
var sec = [0,1,2];
(function cambiarImagen() {

var banners = new Array();
banners[0]= new Array("1156.png","http://www.enlace1.com");
banners[1]= new Array("1441.png","http://www.enlace2.com");
banners[2]= new Array("2192.png","http://www.enlace3.com");


var ad = Math.floor(Math.random() * banners.length);


console.log(ad);


setTimeout(function(){cambiarImagen()}, 2000);

})()
vemos que hay momentos en que el elemento se repite, con lo que si la temporización fuese de 30 segundo, veríamos ese elemento durante 1 minuto

la solución es usar algunas funciones para arrays
Cita:
var sec = [0,1,2];
var elim = [];
(function cambiarImagen() {

var banners = new Array();
banners[0]= new Array("1156.png","http://www.enlace1.com");
banners[1]= new Array("1441.png","http://www.enlace2.com");
banners[2]= new Array("2192.png","http://www.enlace3.com");


var ad = sec.splice(Math.floor(Math.random() * sec.length), 1)[0];

console.log(ad);

elim.push(ad);


if(sec.length == 0) {
sec = elim.slice(-3, -1);
}


setTimeout(function(){cambiarImagen()}, 2000);

})()
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Última edición por IsaBelM; 08/10/2012 a las 13:55