Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/06/2014, 23:27
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: cambiar imagen de fondo con jquery

¿Y si te dijera que con código JS nativo también se puede?



Código Javascript:
Ver original
  1. var imagenes = ["imagen1.jpg", "imagen2.jpg", "imagen3.jpg"],
  2.     total = imagenes.length,
  3.     contador = 0,
  4.     atras = document.getElementById("atras"),
  5.     adelante = document.getElementById("adelante");
  6.  
  7. atras.addEventListener("click", function(){
  8.     contador = contador === 0 ? total - 1 : --contador;
  9.     document.body.style.opacity = 0;
  10.     document.body.style.background = "url(" + imagenes[contador] + ") no-repeat fixed center";
  11.     document.body.style.backgroundSize = "cover";
  12.     document.body.style.opacity = 1;
  13. }, false);
  14.  
  15. adelante.addEventListener("click", function(){
  16.     contador = contador == total - 1 ? 0 : ++contador;
  17.     document.body.style.opacity = 0;
  18.     document.body.style.background = "url(" + imagenes[contador] + ") no-repeat fixed center";
  19.     document.body.style.backgroundSize = "cover";
  20.     document.body.style.opacity = 1;
  21. }, false);
  22.  
  23. document.body.style.background = "url(" + imagenes[contador] + ") no-repeat fixed center";
  24. document.body.style.backgroundSize = "cover";

Lo que hago es simple. Primero, creo un array con los nombres de las imágenes, obtengo el total de ellas y declaro una variable que usaré como contador para ir avanzando/retrocediendo en la lista de imágenes. También tomo a los botones que usaré para avanzar y retroceder.

Cuando le de un clic al botón de retroceso, actualizo el valor del contador mediante una condición; si su valor es igual a cero, es decir, si se está visualizando la primera imagen, le asigno la última posición del array para así mostrar a la última imagen, caso contrario, le resto uno. Luego, desaparezco el cuerpo del documento, le añado la imagen equivalente al valor actualizado del contador, la ajusto al cuerpo del documento y la hago visible nuevamente. El proceso para el botón de avance es lo opuesto a lo que te acabo de explicar.

Finalmente, cuando cargue la ventana, mostraré a la primera imagen y la ajustaré al cuerpo del documento. El efecto de desvanecimiento lo genero con la propiedad transition de CSS desde la hoja de estilos.

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

Última edición por Alexis88; 26/06/2014 a las 23:33 Razón: Mejora