Foros del Web » Programando para Internet » Javascript »

Enlaces en rotador

Estas en el tema de Enlaces en rotador en el foro de Javascript en Foros del Web. holas, les cuento, tengo un rotador de imagenes que las va cambiando cada x tiempo 3 segundos, hasta aqui todo ok, pero quiero agregar un ...
  #1 (permalink)  
Antiguo 28/09/2009, 15:22
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 8 meses
Puntos: 49
Enlaces en rotador

holas, les cuento, tengo un rotador de imagenes que las va cambiando cada x tiempo 3 segundos, hasta aqui todo ok, pero quiero agregar un enlace a cada imagen? como puedo modificar el codigo del aray supongo para lograrlo? ....
mi fuerte no es el javascript...

Código javascript:
Ver original
  1. <script type="text/javascript">
  2. var bannerImg = new Array();
  3.   bannerImg[0]="4.gif";
  4.   bannerImg[1]="1.gif";
  5.   bannerImg[2]="2.gif";
  6.   bannerImg[3]="3.gif";
  7.  
  8.  
  9. var newBanner = 0;
  10. var totalBan = bannerImg.length;
  11.  
  12. function cycleBan() {
  13.   newBanner++;
  14.   if (newBanner == totalBan) {
  15.     newBanner = 0;
  16.   }
  17.   document.banner.src=bannerImg[newBanner];
  18.   // set the time below for length of image display
  19.   // i.e., "4*1000" is 4 seconds
  20.   setTimeout("cycleBan()", 3*1000);
  21. }
  22. window.onload=cycleBan;
  23. </script>
  24.  
  25. <img src="4.gif" name="banner" />
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #2 (permalink)  
Antiguo 28/09/2009, 15:48
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Enlaces en rotador

Código javascript:
Ver original
  1. <script type="text/javascript">
  2. var bannerImg = new Array();
  3.   bannerImg[0]="4.gif";
  4.   bannerImg[1]="1.gif";
  5.   bannerImg[2]="2.gif";
  6.   bannerImg[3]="3.gif";
  7.  
  8.  
  9. var newBanner = 0;
  10. var totalBan = bannerImg.length;
  11.  
  12. function cycleBan() {
  13.   newBanner++;
  14.   if (newBanner == totalBan) {
  15.     newBanner = 0;
  16.   }
  17.   document.banner.src=bannerImg[newBanner];
  18.   document.getElementById('miLink').href='url';
  19.   // set the time below for length of image display
  20.   // i.e., "4*1000" is 4 seconds
  21.   setTimeout("cycleBan()", 3*1000);
  22. }
  23. window.onload=cycleBan;
  24. </script>
  25.  
  26. <img src="4.gif" name="banner" />
  27. <a href="" id="miLink">Llevame a algún lugar</a>
__________________
I see dead pixels
  #3 (permalink)  
Antiguo 28/09/2009, 16:07
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 8 meses
Puntos: 49
Respuesta: Enlaces en rotador

gracias, pero eso me agrega un solo link para todas las imagenes, mi idea es un link para cada imagen distinto espero se entienda

saludos y gracias...
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #4 (permalink)  
Antiguo 28/09/2009, 16:34
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Enlaces en rotador

una forma podria ser teniendo dos arrays, uno para enlaces y otro para rutas de imagenes. entonces, asumiendo que la imagen esta dentro de un <a>, podrias ubicar una linea similar a la siguiente luego de la #17 (en el codigo original de @kaninox)
Código:
document.banner.parentNode.href=bannerLink[newBanner];
// siendo bannerLink el array de enlaces;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 28/09/2009, 16:58
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 8 meses
Puntos: 49
Respuesta: Enlaces en rotador

al poner tal linea ya no me va el rotador :/
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #6 (permalink)  
Antiguo 28/09/2009, 17:03
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Enlaces en rotador

varias cosas que tienes que velar :
  • recuerda que tienes que definir el array de enlaces. cada enlace va a la par con el mismo orden de imagenes. y el valor de cada elemento tiene que ser un string. ejemplo, bannerLink = new Array("http...", "www.dominio", ...);
  • la imagen tiene que ser directamente padre del enlace. o sea, <a ...><img .../></a>
si aun no te sigue funcionando, citanos el error que muestra la consola de errores.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 29/09/2009, 08:43
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 8 meses
Puntos: 49
Respuesta: Enlaces en rotador

mi fuerte claramente no es javascript :(
pero comento que encontré este código que hace lo que necesito, pero la otra parte poner imagen y el enlace... entonces como le agrego un timeout o algo que me las cambie cada cierto tiempo y no cada ves que la web se recargue???

saludos...

Código javascript:
Ver original
  1. <script language="JavaScript">
  2. image = new Array(2);
  3. link = new Array(2);
  4. image[0] = '1.gif'
  5. image[1] = '2.gif'
  6. image[2] = '3.gif'
  7. link[0] = 'http://www.google.com'
  8. link[1] = 'http://www.yahoo.com'
  9. link[2] = 'http://www.altavista.com'
  10. index = Math.floor(Math.random() * image.length);
  11. document.write("<A HREF="+link[index]+">");
  12. document.write("<IMG SRC="+image[index]+" border='0'></A>");
  13. </script>
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #8 (permalink)  
Antiguo 29/09/2009, 09:09
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Enlaces en rotador

con el codigo inicial no tenias que hacer muchos cambios. era cuestion de definir un nuevo array y agregar una linea a la funcion. pues la funcion ya tenia lo necesario para rotar las imagenes. usando el ejemplo de @SergeMedina,
Código:
<script type="text/javascript">
var bannerImg = new Array();
  bannerImg[0]="4.gif";
  bannerImg[1]="1.gif";
  bannerImg[2]="2.gif";
  bannerImg[3]="3.gif";
 
link = new Array();
link[0] = 'http://www.google.com'
link[1] = 'http://www.yahoo.com'
link[2] = 'http://www.altavista.com'
 
var newBanner = 0;
var totalBan = bannerImg.length;
 
function cycleBan() {
  newBanner++;
  if (newBanner == totalBan) {
    newBanner = 0;
  }
  document.banner.src=bannerImg[newBanner];
  document.getElementById('miLink').href=link[newBanner];
  // set the time below for length of image display
  // i.e., "4*1000" is 4 seconds
  setTimeout("cycleBan()", 3*1000);
}
window.onload=cycleBan;
</script>
 
<img src="4.gif" name="banner" />
<a href="" id="miLink">Llevame a algún lugar</a>
admito que no lo he comprobado pero teoricamente debe funcionar.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 29/09/2009, 09:13
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 8 meses
Puntos: 49
Respuesta: Enlaces en rotador

y claro que funciona te has ganado tu estatua :)
muchas gracias por tu tiempo man se agradece

saludos...
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #10 (permalink)  
Antiguo 29/09/2009, 15:21
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 8 meses
Puntos: 49
Respuesta: Enlaces en rotador

Aquí molestando nuevamente, una pregunta :
que tendría que agregarle para que las imágenes hicieron algún tipo de efecto fade por ejemplo al cambiar a otra???

saludos y gracias.
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #11 (permalink)  
Antiguo 29/09/2009, 15:37
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Enlaces en rotador

ya eso es mas complicado, la forma mas facil es usando una libreria pero no te puedo ayudar al respecto porque no trabajo con ellas. pero nada, dos cosas: busca por la web por librerias de animacion como mootools, no se si jquery tambien tenga para hacer efectos. en el subforo de framework tambien te pueden ayudar.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #12 (permalink)  
Antiguo 29/09/2009, 17:02
Avatar de deirdre  
Fecha de Ingreso: mayo-2009
Mensajes: 690
Antigüedad: 15 años
Puntos: 45
Respuesta: Enlaces en rotador

Hola kaninox

Yo no conozco la forma de agregarle 'fade' al estupendo arreglo que te ha hecho zerokilled en tu javascript, pero recuerdo tener una sencilla galería que cumple con lo que pides y que, por suerte, pesa muy poco. En una ocasión la utilicé y resultó muy bien. Hace 'fade' entre imágenes y cada una de ellas es clickeable (a direcciones distintas).

Si sigues estando interesado, la puedo buscar y subirla.

Bye
  #13 (permalink)  
Antiguo 30/09/2009, 14:27
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 8 meses
Puntos: 49
Respuesta: Enlaces en rotador

si la pudieras subir estaría agradecido....
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #14 (permalink)  
Antiguo 30/09/2009, 16:32
Avatar de deirdre  
Fecha de Ingreso: mayo-2009
Mensajes: 690
Antigüedad: 15 años
Puntos: 45
Respuesta: Enlaces en rotador

Hola...

Aquí la tienes.

A destacar:
- Su bajo peso (sin imágenes, el js, css y html: 11.4 KB)
- Uso de ajax para la carga de imágenes
- Fácil implementación y edición

Bye
  #15 (permalink)  
Antiguo 01/10/2009, 07:31
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 8 meses
Puntos: 49
Respuesta: Enlaces en rotador

genial gracias vamos a probarla, saludos

edito : lo probé y esta mas que genial se agradece un montón....
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #16 (permalink)  
Antiguo 01/10/2009, 17:43
 
Fecha de Ingreso: octubre-2009
Mensajes: 20
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: Enlaces en rotador

Hola amigos, yo tambien he bajado ese rotador y quisiera preguntarle a deirdre si es posible que sobre las fotos apareciera algun titular o texto en general. Me interesa utilizarlo con ese añadido.

Muchas gracias.
  #17 (permalink)  
Antiguo 01/10/2009, 18:06
Avatar de deirdre  
Fecha de Ingreso: mayo-2009
Mensajes: 690
Antigüedad: 15 años
Puntos: 45
Respuesta: Enlaces en rotador

Hola...

Es bien fácil... no es necesario tocar el javascript, es sólo cuestión de añadir un poco de css para agregar texto por encima de las imágenes en este rotador-galería.

En la hoja de estilo añade esto (o lo colocas dentro de head):

Código HTML:
<style type="text/css">
a {
	text-decoration: none;
}
.rotulos {
	position: absolute;
	left: 15px;
	top: 10px;
	z-index: 10;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 16px;
	color:#ffc;
	cursor: pointer;
	display: block;
}
</style> 
Y en el html se añade el texto de esta forma:

Código HTML:
 <div class="contentdiv">
		<div class="caja">
			<a href="http://www.enlace-1.com">
				<img alt="" src="images/foto1.jpg" width="400" />
					<span class="rotulos">Comentario para la foto 1</span>
			</a>
		</div>
	</div> 
y así sucesivamente para cada imagen. Como verás es muy sencillo.

Bye
  #18 (permalink)  
Antiguo 02/10/2009, 10:03
 
Fecha de Ingreso: octubre-2009
Mensajes: 20
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: Enlaces en rotador

Muchas gracias. Me ha funcionado perfectamente.
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 17:57.