Foros del Web » Programando para Internet » Javascript »

Pasar siguiente imagen

Estas en el tema de Pasar siguiente imagen en el foro de Javascript en Foros del Web. Tengo este script de un banner toratorio: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < body >   < body onload = "alternar_banner()" >   ...
  #1 (permalink)  
Antiguo 21/02/2010, 12:39
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Pasar siguiente imagen

Tengo este script de un banner toratorio:


Código Javascript:
Ver original
  1. <body>
  2.  
  3. <body onload="alternar_banner()">
  4.  
  5. <script>
  6. //creo array de imágenes
  7. array_imagen = new Array(4)
  8. array_imagen[0] = new Image(670,250)
  9. array_imagen[0].src = "/slides/slide_craft_a.png"
  10. array_imagen[1] = new Image(670,250)
  11. array_imagen[1].src = "/slides/slide_habberos_a.png"
  12. array_imagen[2] = new Image(670,250)
  13. array_imagen[2].src = "/slides/slide_cs_a.png"
  14. array_imagen[3] = new Image(670,250)
  15. array_imagen[3].src = "/slides/slide_soccer_a.png"
  16.  
  17. //creo el array de URLs
  18. array_url = new Array(4)
  19. array_url[0] = "http://starcraft.gameshoot.es"
  20. array_url[1] = "http://www.habberos.es"
  21. array_url[2] = "http://cs.gameshoot.es"
  22. array_url[3] = "http://soccerDT.gameshoot.es"
  23.  
  24. //variable para llevar la cuenta de la imagen siguiente
  25. contador = 0
  26.  
  27. //función para rotar el banner
  28. function alternar_banner(){
  29. window.document["banner"].src = array_imagen[contador].src
  30. window.document['banner'].parentNode.href = array_url[contador]
  31. contador ++
  32. contador = contador &#37; array_imagen.length
  33. setTimeout("alternar_banner()",7000)
  34. } </script>
  35. </head>
  36.  
  37. <script language="Javascript">
  38. function mostrar(nombreCapa){
  39. document.getElementById(nombreCapa).style.visibility="visible";
  40. }
  41. function ocultar(nombreCapa){
  42. document.getElementById(nombreCapa).style.visibility="hidden";
  43. }
  44. </script>
  45.  
  46. <div id="capa1" style="position:relative;" onmouseout="ocultar('capa2')" onmouseover="mostrar('capa2')"><div
  47.  
  48. align="center" id="capa2" style="position:absolute;width:669px;height:20;background-color:black;opacity: .5;"><a
  49.  
  50. href=""><div style="opacity: .9;"><font color="white">&#171; Anterior</a> | <a href=""><font color="white">Siguiente
  51.  
  52. &#187;</font></a></div></div><a href="http://www.habberos.es/#"><img style="" src="#" name="banner"
  53.  
  54. onmouseover="this.src =
  55. this.src.replace(/_\w(\.png)$/, '_b.png\1');" onmouseout="this.src = this.src.replace(/_\w(\.png)$/, '_a.png\1');"
  56.  
  57. width="670" height="250" border=0></a></div>
  58.  
  59. </body>
  60. </html>



Pero necesito que cuando le den a Anterior o siguiente cambie la imagen hacia atras o hacia delante segun hayan pulsado, como hago esto?

Última edición por SeaPirates; 23/02/2010 a las 07:59
  #2 (permalink)  
Antiguo 23/02/2010, 07:59
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Pasar siguiente imagen

alguien sabe como hacerlo? por favor?
  #3 (permalink)  
Antiguo 23/02/2010, 08:04
 
Fecha de Ingreso: febrero-2010
Mensajes: 3
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Pasar siguiente imagen

Para adelante contador+1 y para atrás contador-1 . Ya lo tienes hecho, sólo tienes que crear una función para cada (anterior y siguiente)
  #4 (permalink)  
Antiguo 23/02/2010, 08:06
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Pasar siguiente imagen

con javascript no se como hacerlo

es asi?

function siguiente{
contador+1
}

?¿

Última edición por SeaPirates; 23/02/2010 a las 10:17
  #5 (permalink)  
Antiguo 24/02/2010, 08:00
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Pasar siguiente imagen

Por favor, respondan ;(
  #6 (permalink)  
Antiguo 24/02/2010, 08:16
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 2 meses
Puntos: 13
Respuesta: Pasar siguiente imagen

contador++; te recomiendo esto http://keepyourlinks.com/link1.php?id=325 (sin animo de hacer spam, tengo mis enlacs guardados alli)
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance
  #7 (permalink)  
Antiguo 24/02/2010, 14:29
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Pasar siguiente imagen

Código Javascript:
Ver original
  1. //función para rotar el banner
  2. function alternar_banner(){
  3. window.document["banner"].src = array_imagen[contador].src
  4. window.document['banner'].parentNode.href = array_url[contador]
  5. contador ++
  6. contador = contador % array_imagen.length
  7. setTimeout("alternar_banner()",7000)
  8. }
  9. function siguiente{
  10. contador++
  11. }
  12. </script>

asi?


Y para activar la funcion en el href:

<a href="#" onclick="siguiente()">Siguiente</a>


?¿
  #8 (permalink)  
Antiguo 25/02/2010, 12:45
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Pasar siguiente imagen

es asi?? ¬¬
  #9 (permalink)  
Antiguo 25/02/2010, 13:46
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 14 años, 3 meses
Puntos: 45
Respuesta: Pasar siguiente imagen

Buenas,

según el último código que has puesto, la función alternar_banner() se llama a sí misma cada cierto tiempo infinitas veces, pero no llegará a ejecutarse nunca porque no la llamas desde ningún sitio. Para hacer lo que quieres tendrias que llamarla desde siguiente y sólo incrementar el contador ahí. Tendrías que tener también en cuenta qué debería hacer la función anterior, cuando contador sea menor que cero. Seria algo así:

Código Javascript:
Ver original
  1. //función para rotar el banner
  2. function alternar_banner()
  3. {
  4.         // en esta función sólo ponemos el cambio de baner y así se puede usar
  5.         // desde anterior y desde siguiente
  6.         window.document["banner"].src = array_imagen[contador].src;
  7.         window.document['banner'].parentNode.href = array_url[contador];
  8.         // contador ++   <--------- esto no deberia ir aqui
  9.         // contador = contador % array_imagen.length <-------- esto tampoco
  10.         // setTimeout("alternar_banner()",7000) <----------- ni esto
  11. }
  12.  
  13. function siguiente
  14. {
  15.         contador++;
  16.         // si cuando acabes quieres que vuelva a empezar incluye esta linea
  17.         contador = contador % array_imagen.length ;
  18.         // también se podría hacer que si es el último o el primero no haga nada
  19.         if ( contador == array_imagen.length)
  20.         {
  21.                 contador--;
  22.                 return;
  23.         }
  24.  
  25.         setTimeout("alternar_banner()",7000) ;
  26.         //no es obligatorio  pero si recomendable poner el punto y coma al final
  27.         // de cada instruccion
  28. }
  29. </script>

y así ya podrías llamar a la función como habías puesto.

Sería conveniente también controlar la propagación de eventos por si se lanza un nuevo evento antes de que finalice el que se esta ejecutando. Para eso tendrías que hacer una función que se encargara de esto y que sería la que llamaría a siguiente y a anterior.
  #10 (permalink)  
Antiguo 26/02/2010, 00:32
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Pasar siguiente imagen

No me va...:

Código Javascript:
Ver original
  1. <script>
  2. //creo array de imágenes
  3. array_imagen = new Array(4)
  4. array_imagen[0] = new Image(670,250)
  5. array_imagen[0].src = "/slides/slide_craft_a.png"
  6. array_imagen[1] = new Image(670,250)
  7. array_imagen[1].src = "/slides/slide_habberos_a.png"
  8. array_imagen[2] = new Image(670,250)
  9. array_imagen[2].src = "/slides/slide_cs_a.png"
  10. array_imagen[3] = new Image(670,250)
  11. array_imagen[3].src = "/slides/slide_soccer_a.png"
  12.  
  13. //creo el array de URLs
  14. array_url = new Array(4)
  15. array_url[0] = "http://starcraft.gameshoot.es"
  16. array_url[1] = "http://www.habberos.es"
  17. array_url[2] = "http://cs.gameshoot.es"
  18. array_url[3] = "http://soccerDT.gameshoot.es"
  19.  
  20. //variable para llevar la cuenta de la imagen siguiente
  21. contador = 0
  22.  
  23. //función para rotar el banner
  24. function alternar_banner()
  25. {
  26.         // en esta función sólo ponemos el cambio de baner y así se puede usar
  27.         // desde anterior y desde siguiente
  28.         window.document["banner"].src = array_imagen[contador].src;
  29.         window.document['banner'].parentNode.href = array_url[contador];
  30. }
  31.  
  32. function siguiente
  33. {
  34.         contador++;
  35.         // si cuando acabes quieres que vuelva a empezar incluye esta linea
  36.         contador = contador % array_imagen.length ;
  37.         // también se podría hacer que si es el último o el primero no haga nada
  38.         if ( contador == array_imagen.length)
  39.         {
  40.                 contador--;
  41.                 return;
  42.         }
  43.  
  44.         setTimeout("alternar_banner()",7000) ;
  45.         //no es obligatorio  pero si recomendable poner el punto y coma al final
  46.         // de cada instruccion
  47. }
  48. </script>
  #11 (permalink)  
Antiguo 26/02/2010, 10:52
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 14 años, 3 meses
Puntos: 45
Respuesta: Pasar siguiente imagen

Buenas,

habría hecho falta el html para poderlo probar o que dieras algo mas de información sobre el error que da. Pero bueno aquí tienes un ejemplo que funciona:

Código HTML:
Ver original
  1. <div >
  2.         <a href="#"><img id="img_baner" src=""></a>
  3. </div>
  4.  
  5. <ul>
  6.         <li id="anterior">Anterior</li>
  7.         <li id="siguiente">Siguiente</li>
  8. </ul>

Código Javascript:
Ver original
  1. var contador = 0;
  2. var imagenes = ['fichero_img', 'fichero_img', 'fichero_img',  'fichero_img' ];
  3. var urls = ['url', 'url', 'url', 'url'];
  4.  
  5. function init()
  6. {
  7.         var liAnt = document.getElementById('anterior');
  8.         var liSig = document.getElementById('siguiente');
  9.         liAnt.onclick = anterior;
  10.         liSig.onclick = siguiente;
  11.  
  12.         mostrarBaner();
  13. }
  14.  
  15. window.onload = init;
  16.  
  17. function mostrarBaner()
  18. {
  19.         var img_baner = document.getElementById('img_baner');
  20.         img_baner.src = imagenes[contador];
  21.         img_baner.parentNode.href = urls[contador];
  22. }
  23.  
  24. function anterior()
  25. {
  26.         if (contador != 0) contador--;
  27.         mostrarBaner();
  28. }
  29.  
  30. function siguiente()
  31. {
  32.         if (contador < urls.length -1) contador++;
  33.         mostrarBaner();
  34. }
  #12 (permalink)  
Antiguo 27/02/2010, 03:33
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Pasar siguiente imagen

Me estoy liando, ya no se donde meter cada script xD

El primer script que me diste, cuando lo pongo el banner se queda en blanco y no puedo pasar las imagenes, y el segundo igual..


Igual es que no lo coloco bien con el script el banner, prueba a ponerlo tu por favor.
Y gracias por tu ayuda
  #13 (permalink)  
Antiguo 27/02/2010, 04:36
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 14 años, 3 meses
Puntos: 45
Respuesta: Pasar siguiente imagen

Buenas,

el último código que te he puesto, es un ejemplo basado en lo que querías hacer y tal cual está funciona. El javascript iría en un fichero externo que tendrías que incluir en el html dentro de <head> con:

Código HTML:
Ver original
  1. <script type="text/javascript" src="fichero.js"></script>

por supuesto tendrás que cambiar los nombres del fichero js y de los ficheros de imagenes y urls a los que tu tengas. Pruébalo tal como está y cuando lo entiendas podrás adaptarlo a tu código. Pero te repito que funciona, lo se porque lo he hecho yo y lo he probado ¿que mas quieres que haga?

Y la próxima vez si das mas información mucho mejor, porque decir que no te va o que no lo colocas bien, sin poder verlo no sirve de mucho, por eso el ejemplo puede que no se adapte a tu código porque no has puesto el html, tendrás que adaptarlo tu, pero no será complicado.
  #14 (permalink)  
Antiguo 27/02/2010, 06:47
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Pasar siguiente imagen

Lo que no hace es pasar las imagenes automaticamente como el otro script, como se puede hacer?
  #15 (permalink)  
Antiguo 02/03/2010, 00:36
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Pasar siguiente imagen

como hago ?¿?

Etiquetas: pasar, siguiente
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 11:19.