Foros del Web » Programando para Internet » Javascript »

como rotar mas de 4 imagenes =S

Estas en el tema de como rotar mas de 4 imagenes =S en el foro de Javascript en Foros del Web. HOla que tal, he probado el codigo que puso caricatos esta excelente y asi es lo que quiero hacer, pero pues quiero poner mas imagenes ...
  #1 (permalink)  
Antiguo 05/07/2006, 11:20
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 18 años, 10 meses
Puntos: 0
Pregunta como rotar mas de 4 imagenes =S

HOla que tal, he probado el codigo que puso caricatos esta excelente y asi es lo que quiero hacer, pero pues quiero poner mas imagenes y no se como!!!!!

he intentado poner dos fotos mas pero no me aparecen que debo hacer???

gracias de antemano

aki dejo el codigo:
Código:
<script>
var imagenes = [
	"images/ako.gif",
	"images/via.gif",
	"images/vivdi.jpg",
	"images/ara.jpg",
	"images/infvit.gif",
	"images/apoo.gif",
	"images/ingrs_ad.gif"
];

var enlaces = [
	"http://www.espaciopropio.com",
	"http://www.google.com",
	"http://www.expoquierocasa.com",
	"http://www.proinfa.com.mx",
	"http://www.xxx.com",
	"http://www.sxx.com",
	"http://www.susdwtura.com"
];
function azar()    { 
    var temp = new Array(4); 
    temp[0] = Math.floor(Math.random() * imagenes.length); 
    do 
        temp[1] = Math.floor(Math.random() * imagenes.length); 
    while (temp[0] == temp[1]) 
    do 
        temp[2] = Math.floor(Math.random() * imagenes.length); 
    while (temp[0] == temp[1] || temp[0] == temp[2] || temp[1] == temp[2]) 
    do 
        temp[3] = Math.floor(Math.random() * imagenes.length); 
    while (    temp[0] == temp[1] || 
        temp[0] == temp[2] || 
        temp[1] == temp[2] || 
        temp[0] == temp[3] || 
        temp[1] == temp[3] || 
        temp[2] == temp[3]
  		
		
) 
//    alert(document.links.length); 
    document.getElementById("enlace1").setAttribute("href", enlaces[temp[0]]); 
    document.getElementById("enlace2").href = enlaces[temp[1]]; 
    document.getElementById("enlace3").href = enlaces[temp[2]]; 
    document.getElementById("enlace4").href = enlaces[temp[3]];
    document.images.imagen1.src = imagenes[temp[0]]; 
    document.images.imagen2.src = imagenes[temp[1]]; 
    document.images.imagen3.src = imagenes[temp[2]]; 
    document.images.imagen4.src = imagenes[temp[3]]; 
 
} 
</script>
y aqui es donde lo pongo en mi tabla :
Código:
<body onload=azar()> 

<table cellpadding="0" cellspacing="0" border="0">
	<tr>
		<td><a href="#" name="enlace1" target="_blank"><img src="" name=imagen1></a></td>
	    <td><a href="" name=enlace2 target="_blank"><img src="" name=imagen2></a></td>
		<td><a href="" name=enlace3 target="_blank"><img src="" name=imagen3></a></td>
	</tr>
	<tr>
		<td><a href="" name=enlace4 target="_blank"><img src="" name=imagen4></a></td>
	</tr>
</table>
__________________
" Recuerda , estas donde debes estar ..."
  #2 (permalink)  
Antiguo 05/07/2006, 11:46
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:

Me agrada saber que cosillas que he puesto en los foros es útil... se me ocurre hacer una función con un número variable de elementos:

Código:
function distinto() {
 var entrada = distinto.arguments;
 dife = true;
 for (var i = 0; i < entrada.length - 1; i ++)
  for (var j = i + 1; j < entrada.length; j ++)
   dife = dife && (entrada[i] != entrada[j])
 return dife;
}
Cambiando el while:
while (temp[0] == temp[1])

...por while(distinto(temp[0], temp[1]));

y para otro valor:
while(distinto(temp[0], temp[1], temp[2]));

Lo he probado con 4 elementos... supongo que debe funcionar a partir de 2.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 05/07/2006, 15:02
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 18 años, 10 meses
Puntos: 0
mmm y lo demas como lo dejaria, igual ?
ay no entiendoooo, me piedooo =S
__________________
" Recuerda , estas donde debes estar ..."

Última edición por Gaby_Corr; 05/07/2006 a las 15:13
  #4 (permalink)  
Antiguo 05/07/2006, 18: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:

Lo demás exactamente igual... inténtalo, y si no te funciona, al menos muéstranos tus pruebas... de otra manera es difícil poder orientarte.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 06/07/2006, 08:48
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 18 años, 10 meses
Puntos: 0
bueno mira puse la funcion q escribiste la puse antes de la funcion azar, pero no supe donde mandarla llamar, aparte como que se trababa la pag de internet mira asi lo puse:
Código:
<script>
var imagenes = [
	"images/arko.gif",
	"images/vida.gif",
	"images/vindi.jpg",
	"images/ara.jpg",
	"images/infit.gif",
	"images/apoyfo.gif",
	"images/ingresos_ad.gif"
];

var enlaces = [
	"http://www.espio.com",
	"http://www.google.com",
	"http://www.expsa.com",
	"http://www.proi.com.mx",
	"http://www.sucaricatura.com/2002/mini/2002H005.jpg",
	"http://www.sucaricatura.com/2002/mini/2002H006.jpg",
	"http://www.sucaricatura.com/2002/mini/2002H007.jpg"
];

function distinto() {
 var entrada = distinto.arguments;
 dife = true;
 for (var i = 0; i < entrada.length - 1; i ++)
  for (var j = i + 1; j < entrada.length; j ++)
   dife = dife && (entrada[i] != entrada[j])
 return dife;
}

function azar()    { 
    var temp = new Array(4); 
    temp[0] = Math.floor(Math.random() * imagenes.length); 
    do 
        temp[1] = Math.floor(Math.random() * imagenes.length); 
    (distinto(temp[0], temp[1], temp[2], temp[3]));  **aki es donde lo cambie**
    do 
        temp[2] = Math.floor(Math.random() * imagenes.length); 
    while (temp[0] == temp[1] || temp[0] == temp[2] || temp[1] == temp[2]) 
    do 
        temp[3] = Math.floor(Math.random() * imagenes.length); 
    while (    temp[0] == temp[1] || 
        temp[0] == temp[2] || 
        temp[1] == temp[2] || 
        temp[0] == temp[3] || 
        temp[1] == temp[3] || 
        temp[2] == temp[3]
  		
		
) 


//    alert(document.links.length); 
    document.getElementById("enlace1").setAttribute("href", enlaces[temp[0]]); 
    document.getElementById("enlace2").href = enlaces[temp[1]]; 
    document.getElementById("enlace3").href = enlaces[temp[2]]; 
    document.getElementById("enlace4").href = enlaces[temp[3]];
    document.images.imagen1.src = imagenes[temp[0]]; 
    document.images.imagen2.src = imagenes[temp[1]]; 
    document.images.imagen3.src = imagenes[temp[2]]; 
    document.images.imagen4.src = imagenes[temp[3]]; 
 
} 
</script>

</head> 
<body onload=azar()> 

<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td><a href="#" name="enlace1" target="_blank"><img src="" name=imagen1></a></td>
<td><a href="" name=enlace2 target="_blank"><img src="" name=imagen2></a></td>
<td><a href="" name=enlace3 target="_blank"><img src="" name=imagen3></a></td>
</tr>
<tr>
<td><a href="" name=enlace4 target="_blank"><img src="" name=imagen4></a></td>
</tr>
</table>
mmm que tengo mal ???
__________________
" Recuerda , estas donde debes estar ..."
  #6 (permalink)  
Antiguo 06/07/2006, 11:02
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 18 años, 10 meses
Puntos: 0
sigo terca con esta onda, y ya me desespere que no sale tengo esto y me marca error :
--------
Line 63
char 3
document.getElementById(..)' es nulo o no es un objeto
...
--------

Código:
<script>
var imagenes = [
	"images/arko.gif",
	"images/vidusa.gif",
	"images/vivei.jpg",
	"images/ara.jpg",
	"images/infit.gif",
	"images/apofo.gif",
	"images/ingresos_ad.gif",
	"images/fonh.jpg",
	"images/isse.gif"
];

var enlaces = [
	"http://www.esppio.com",
	"http://www.google.com",
	"http://www.expsa.com",
	"http://www.proa.com.mx",
	"http://www.sucaricatura1.com",
	"http://www.sucaricatura2.com",
	"http://www.sucaricatura3.com",
	"http://www.marturis.com",
	"http://www.yahoo.com"
];


function azar()    { 
    var temp = new Array(6); 
    temp[0] = Math.floor(Math.random() * imagenes.length); 
    do 
        temp[1] = Math.floor(Math.random() * imagenes.length); 
    while (temp[0] == temp[1]) 
    do 
        temp[2] = Math.floor(Math.random() * imagenes.length); 
    while (temp[0] == temp[1] || temp[0] == temp[2] || temp[1] == temp[2]) 
    do 
        temp[3] = Math.floor(Math.random() * imagenes.length); 
    while (    temp[0] == temp[1] || 
        temp[0] == temp[2] || 
        temp[1] == temp[2] || 
        temp[0] == temp[3] || 
        temp[1] == temp[3] || 
        temp[2] == temp[3]
  		
		
) 


//    alert(document.links.length);  
    document.getElementById("enlace1").setAttribute("href", enlaces[temp[0]]); 
    document.getElementById("enlace2").href = enlaces[temp[1]]; 
    document.getElementById("enlace3").href = enlaces[temp[2]]; 
    document.getElementById("enlace4").href = enlaces[temp[3]];
	 document.getElementById("enlace5").href = enlaces[temp[4]];
	  document.getElementById("enlace6").href = enlaces[temp[5]];
    document.images.imagen1.src = imagenes[temp[0]]; 
    document.images.imagen2.src = imagenes[temp[1]]; 
    document.images.imagen3.src = imagenes[temp[2]]; 
    document.images.imagen4.src = imagenes[temp[3]]; 
     document.images.imagen5.src = imagenes[temp[4]]; 
     document.images.imagen6.src = imagenes[temp[5]]; 
} 
</script>

</head> 
<body onload=azar()> 

<table cellpadding="0" cellspacing="0" border="0">
	<tr>
		<td><a href="#" name="enlace1" target="_blank"><img src="" name=imagen1></a></td>
	    <td><a href="" name=enlace2 target="_blank"><img src="" name=imagen2></a></td>
		<td><a href="" name=enlace3 target="_blank"><img src="" name=imagen3></a></td>
	</tr>
	<tr>
		<td><a href="" name=enlace4 target="_blank"><img src="" name=imagen4></a></td>
	</tr>
</table>
__________________
" Recuerda , estas donde debes estar ..."
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 21:55.