Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/04/2015, 04:44
luisceb
 
Fecha de Ingreso: abril-2015
Mensajes: 24
Antigüedad: 9 años, 1 mes
Puntos: 1
Respuesta: Imágenes que cambien cada segundo

Hola amigos.

En mi opinión la solución es tan fácil como hacer una cascada de funciones, condicionadas por el famoso setTimeout para la ejecución en serie.

Veamos.

Pongamos que queremos realizar un programa en el que participen 5 imágenes, y cada una sustituya a la anterior cada 2 segundos.


Hacemos la cascada de funciones, y llamamos a la primera al cargar la página con el comando "onload='funcion1()'"


Las imágenes se llamarán:

imagen1.jpg
imagen2.jpg
imagen3.jpg
imagen4.jpg
imagen4.jpg

Y estarán alojadas en la misma dirección del *.html para no tener que escribir más caracteres. Cuestión de vaguería, je, je...

La imagen estará identificada mediante un "id". Llamémosle id=imagen. en la primera función no es necesario definir qué imagen va ubicada en dicho contenedor dado que es la que tenemos por defecto, no obstante indicaremos dicha definición mediante un imagen.src="imagen1.jpg"

Haremos una cascada de funciones denominadas

primera()
segunda()
tercera()
cuarta()
quinta()

La función primera sería algo así:

t=0;
function primera(){

imagen.src="imagen1.jpg"

t=t+1;

if(t>=2){segunda();t=0;return}

setTimeout('primera()',1000)
}

La función primera() se ejecutará durante 2000 milisegundos (2 segundos). Pasado este tiempo se cortará el bucle mediante el condicional "if" y se ejecutará segunda(). Ponemos la variable contador "t" a cero para utilizarla en la próxima función.


function segunda(){

imagen.src="imagen2.jpg"

t=t+1;

if(t>=2){tercera();t=0;return}

setTimeout('segunda()',1000)
}

En esta función la imagen imagen1.jpg se ha cambiado a imagen2.jpg. Su permanencia será igualmente de 2 segundos. Entonces pasaremos a la tercera función y con ella a la imagen imagen3.jpg


function tercera(){

imagen.src="imagen3.jpg"

t=t+1;

if(t>=2){cuarta();t=0;return}

setTimeout('tercera()',1000)
}

La cuarta será un clon de las anteriores, cambiando los parámetros de imagen y función.

Llegamos a la quinta. Será idéntica a las anteriores, con la particularidad de que llamaremos a la primera función al finalizar el bucle



function quinta(){

imagen.src="imagen5.jpg"

t=t+1;

if(t>=2){primera();t=0;return}

setTimeout('quinta()',1000)
}

Código HTML:
Ver original
  1.  
  2. <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  3. <title>cambio de imagen cada 2 segundos</title>
  4. </head>
  5. <script language=javascript>
  6.  
  7. t=0;
  8. function primera(){
  9. imagen.src="imagen1.jpg"
  10. t=t+1;
  11. if(t>=2){segunda();t=0;return}
  12. setTimeout('primera()',1000)
  13. }
  14.  
  15. function segunda(){
  16. imagen.src="imagen2.jpg"
  17. t=t+1;
  18. if(t>=2){tercera();t=0;return}
  19. setTimeout('segunda()',1000)
  20. }
  21.  
  22.  
  23. function tercera(){
  24. imagen.src="imagen3.jpg"
  25. t=t+1;
  26. if(t>=2){cuarta();t=0;return}
  27. setTimeout('tercera()',1000)
  28. }
  29.  
  30. function cuarta(){
  31. imagen.src="imagen4.jpg"
  32. t=t+1;
  33. if(t>=2){quinta();t=0;return}
  34. setTimeout('cuarta()',1000)
  35. }
  36.  
  37. function quinta(){
  38. imagen.src="imagen5.jpg"
  39. t=t+1;
  40. if(t>=2){primera();t=0;return}
  41. setTimeout('quinta()',1000)
  42. }
  43.  
  44. <body onload="primera()">
  45.  
  46. <div style="position: absolute; width: 100px; height: 100px; z-index: 1; left: 192px; top: 47px" id="capa1">
  47.     <table border="1" width="100%" id="table1">
  48.         <tr>
  49.             <td>
  50.             <img border="0" src="imagen1.jpg" width="300" height="300" id=imagen></td>
  51.         </tr>
  52.     </table>
  53. </div>
  54.  
  55. </body>
  56.  
  57. </html>