Foros del Web » Programando para Internet » Jquery »

cambiar imagen de fondo con jquery

Estas en el tema de cambiar imagen de fondo con jquery en el foro de Jquery en Foros del Web. tengo varias imagenes para ponerlas como fondo en mi web, luego en la parte inferior pienso tener dos flechas: " < > " y me ...
  #1 (permalink)  
Antiguo 26/06/2014, 22:29
Avatar de cristo995  
Fecha de Ingreso: noviembre-2012
Mensajes: 187
Antigüedad: 12 años
Puntos: 0
cambiar imagen de fondo con jquery

tengo varias imagenes para ponerlas como fondo en mi web, luego en la parte inferior pienso tener dos flechas: " < > " y me gustaria que al picar en ellas se me cambiara el fondo del body con algun efecto como fadeIn , show , o de forma horizontal como si fuese un slider etc..

pero no sabria como hacer esto con jquery.

de antemano agradeceria vuestra ayuda.
  #2 (permalink)  
Antiguo 26/06/2014, 23:27
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
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
  #3 (permalink)  
Antiguo 27/06/2014, 08:04
Avatar de cristo995  
Fecha de Ingreso: noviembre-2012
Mensajes: 187
Antigüedad: 12 años
Puntos: 0
Respuesta: cambiar imagen de fondo con jquery

hola. gracias por tu ayuda.

pero tengo dos dudas.
las transisiones en chrome funcionan todas bien , pero en mozilla y en explorer solo la primera imagen toma el tiempo y las siguientes ya se cambian todo rapido como evadiendo los segundos que le e dado.

ni dandole los prefijos a cada navegador sigue evadiendo el tiempo:
-moz-transition: all ease;
-webkit-transition: all ease;
-o-transition: all ease;
-ms-transition: all ease;
transition: all ease;

-moz-transition-duration: 3s;
-webkit-transition-duration: 3s;
-o-transition-duration: 3s;
-ms-transition-duration: 3s;
transition-duration: 3s;

La segunda duda es como le podria hacer para que el efecto fuera horizontal similiar a un slider
  #4 (permalink)  
Antiguo 27/06/2014, 12:24
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: cambiar imagen de fondo con jquery

Me parece raro lo del problema con la transición, pero ya que quieres que el fondo se mueva en lugar de desvanecerse, podrías probar modificando este ejemplo que en lugar de realizar el movimiento de izquierda a derecha, lo hace de arriba hacia abajo.

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

Etiquetas: Ninguno
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 07:08.