Ver Mensaje Individual
  #4 (permalink)  
Antiguo 07/01/2014, 18:43
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Slideshow en Javascript

Cita:
Iniciado por creacion_grafica Ver Mensaje
Este código es sólo para un slideshow ¿cierto?
Si te fijas bien, el slider afecta a las imágenes del contenedor especificado, por lo que solamente tendría que hacer un ligero cambio en el código para que afecte a varios contenedores al mismo tiempo.

Cita:
Iniciado por creacion_grafica Ver Mensaje
¿Cómo incluir otro slideshow dentro del código (misma página html) por ejem: foto1.jpg, foto2.jpg, etc?
Reacomodando el código, quedaría así:

Código HTML:
Ver original
  1. <section class = "slider">
  2.     <img src = "imagen1.jpg" />
  3.     <img src = "imagen2.jpg" />
  4.     <img src = "imagen3.jpg" />
  5.  
  6. <section class = "slider">
  7.     <img src = "imagen4.jpg" />
  8.     <img src = "imagen5.jpg" />
  9.     <img src = "imagen6.jpg" />

Código CSS:
Ver original
  1. .slider img{
  2.   display: none;
  3. }

Código Javascript:
Ver original
  1. var contenedores = document.getElementsByClassName("slider")
  2.     totalContenedores = contenedores.length;
  3.  
  4. for (i = 0; i < totalContenedores; i++) {
  5.   (function(indice){  
  6.     var imagenes = contenedores[indice].getElementsByTagName("img"),
  7.         contador = 0,
  8.         totalImagenes = imagenes.length;
  9.  
  10.     imagenes[contador].style.display = "block";
  11.  
  12.     var slider = {
  13.       show: function(){
  14.         imagenes[contador].style.display = "none";    
  15.         contador = (contador == totalImagenes- 1) ? 0 : ++contador;
  16.         imagenes[contador].style.display = "block";
  17.       }
  18.     };
  19.     setInterval(slider.show, 3000);
  20.   })(i);  
  21. }
Como puedes notar, ahora tengo dos slider (y puedo tener muchos más si quiero), los cuales tienen la misma clase de nombre "slider", cuyas imágenes son ocultadas desde la hoja de estilos. En el código JS, tomo los elementos que tengan por clase el nombre "slider" y tomo la cantidad total de ellos (en número, que en este caso es dos pues hay dos contenedores con la clase "slider").

Con ayuda de un bucle, aplico el efecto deseado en cada imagen que se encuentre en cada contenedor, para lo cual, utilizo una función anónima auto-ejecutable, para así iniciar con el efecto del slider de forma automática y aplicar correctamente los efectos a cada imagen de cada contenedor. El resto el código sigue la misma lógica del que te mostré en la anterior respuesta, con la diferencia de que ahora trabajo con un array de contenedores, por lo que utilizo un sub-índice para acceder a ellos.

Cita:
Iniciado por creacion_grafica Ver Mensaje
¿El CSS va dentro de {head}?
Claro, puedes escribirlo directamente:

Código HTML:
Ver original
  1. <style type = "text/css">
  2. /*
  3.     Aquí van los estilos
  4. */

O incluirlo de forma externa:
Código HTML:
Ver original
  1. <link rel = "stylesheet" type = "text/css" href = "estilos.css" />
En donde estilos.css, es un archivo en formato CSS que contiene los estilos.

Aquí lo tienes, en ejecución.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand