Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/05/2012, 00:54
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: cambiar fondo con jquery cada x segundos

Acá te dejo una variante, similar a la de @caricatos, pero con un agregado, para evitar parpadeos durante el cambio de fondo, vamos a precargar la imagen que sigue en la secuencia, para almacenarla en cache y que ya esté disponible cuando se la necesite

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>Cambiar background cada n segundos</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <style type="text/css">
  7. /*<![CDATA[*/
  8. /* definimos como background por defecto la primera imagen de nuestra lista */
  9. body {
  10. background-image: url('sfondo01.jpg');
  11. }
  12. /* esta div no es visible, pero precarga la imagen siguiente a cargar por body, asi se evita algún posible parpadeo
  13. definimos como background por defecto la 2ª imagen de nuestra lista.
  14. Para la demo le damos un alto y ancho, pero debe establecerse a 0;
  15. */
  16. div#precarga{
  17. width: 100px;
  18. height: 100px;
  19. margin: 0px;
  20. padding: 0px;
  21. background-image: url('sfondo02.gif');
  22. }
  23. h1{
  24. color: #0061C1;
  25. }
  26. /*]]>*/
  27. <script type="text/javascript">
  28. //<![CDATA[
  29. // aqui definis la lista de imágenes para el cambio automático
  30. var fondos = ['sfondo01.jpg', 'sfondo02.gif', 'sfondo03.jpg', 'sfondo04.jpg', 'sfondo05.jpg', 'sfondo06.jpg', 'sfondo07.jpg'];
  31. var fondo_actual = 0;
  32. // aqui hacemos la rotación
  33. var CambiarFondo = function(){
  34. if (fondo_actual == fondos.length) {
  35. fondo_actual = 0;
  36. }
  37. var precargar =fondo_actual++;
  38. var precargar2 = precargar+2;
  39. // cambiamos el background del body
  40. document.body.style.backgroundImage = 'url('+ fondos[precargar]+ ')';
  41. // cargamos en el div no visible "#precarga" la imagen siguiente que se cargará en el body
  42. // para ya tenerla en la cache, comenzamos con la imagen 3, ya que la 1 y 2 las tenemos en el css
  43. document.getElementById('precarga').style.backgroundImage =  'url('+fondos[precargar2]+ ')';
  44. }
  45. //aqui definís el tiempo en milisegundos e  inicias la función con setInterval para que se repita indefinidamente
  46. window.setInterval(CambiarFondo, 10000);
  47. //]]>
  48. </head>
  49. <div id="precarga"><!-- precarga de backgrounds --></div>
  50. <h1>Cambiar background cada n segundos</h1>
  51. </body>
  52. </html>

Demo
http://foros.emprear.com/javascript/...orotarbg2.html

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.