Ver Mensaje Individual
  #6 (permalink)  
Antiguo 18/01/2014, 15:34
Avatar de rhdpre
rhdpre
 
Fecha de Ingreso: noviembre-2010
Mensajes: 23
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Transición imagenes fondo

Cita:
Iniciado por Alexis88 Ver Mensaje
Como este ya es un tema muy visto, te voy a mostrar la forma en la que creo mis sliders.

Primero, añado una cantidad X de imágenes en el documento HTML y les asigno una clase en particular:
Código HTML:
Ver original
  1. <img src = "imagen1.jpg" class = "slider" />
  2. <img src = "imagen2.jpg" class = "slider" />
  3. <img src = "imagen3.jpg" class = "slider" />

Luego, les doy una posición absoluta para que todas las imágenes ocupen la misma ubicación y las hago transparentes, además, le doy 1 segundo de transición por cada vez que se afecte la opacidad de la imagen:
Código CSS:
Ver original
  1. .slider{
  2.     position: absolute;
  3.     opacity: 0;
  4.     transition: opacity 1s;
  5. }

Finalmente, tomo las imágenes por el nombre de clase, creando así un array con las imágenes, obtengo el total de ellas y declaro una variable que me servirá para acceder al array e ir tomando las imágenes una a una para modificar su opacidad:
Código Javascript:
Ver original
  1. var imagenes = document.getElementsByClassName("slider"),
  2.     total = imagenes.length;
  3.     indice = 0;
  4.  
  5. imagenes[indice].style.opacity = 1;
  6.  
  7. var slider = {
  8.     show: function(){
  9.       imagenes[indice].style.opacity = 0;
  10.       indice = indice == total - 1 ? 0 : ++indice;
  11.       imagenes[indice].style.opacity = 1;
  12.     }
  13. };
  14.  
  15. setInterval(slider.show, 3000);

Inicialmente, le quitamos la transparencia a la primera imagen, luego, declaramos el objeto "slider" que contiene al método "show", en el cual hacemos transparente a la imagen que actualmente se está viendo, evaluamos el valor del índice, si es igual a la posición de la última imagen del array, le damos cero como valor para inicie la cadena, caso contrario, aumenta su valor en uno. Finalmente, mostramos la imagen equivalente al nuevo valor del índice.

El método [URL="https://developer.mozilla.org/en-US/docs/Web/API/Window.setInterval"][B]setInterval[/B][/URL], controla la ejecución de nuestro método, iniciándolo cada 3000 milisegundo o 3 segundos.

Así es como se ve: [url]http://jsbin.com/OfELUcuB/1[/url]

Adecua algunos detalles para que funcione en todos los navegadores, yo lo estoy probando en Chrome y Opera y va genial.

Saludos
Hola Alexis:

he tratado de usar tu código y no me funcionaba.

He visto que llamabas a unos JS y los "he pillado" y me funciona...pero me preocupa: ¿ES LEGAL?, si eso me lo dices y "me los borro"....


Lo único que no consigo es que la imagen se "maximice" con el navegador, como aquí:

[URL="http://www.neoclick.es/cokote"][/URL]

las pruebas las estoy haciendo en index2.htm..


Un saludo y muchas gracias