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<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> /*<![CDATA[*/
/* definimos como background por defecto la primera imagen de nuestra lista */
body {
background-image: url('sfondo01.jpg');
}
/* esta div no es visible, pero precarga la imagen siguiente a cargar por body, asi se evita algún posible parpadeo
definimos como background por defecto la 2ª imagen de nuestra lista.
Para la demo le damos un alto y ancho, pero debe establecerse a 0;
*/
div#precarga{
width: 100px;
height: 100px;
margin: 0px;
padding: 0px;
background-image: url('sfondo02.gif');
}
h1{
color: #0061C1;
}
/*]]>*/
<script type="text/javascript"> //<![CDATA[
// aqui definis la lista de imágenes para el cambio automático
var fondos = ['sfondo01.jpg', 'sfondo02.gif', 'sfondo03.jpg', 'sfondo04.jpg', 'sfondo05.jpg', 'sfondo06.jpg', 'sfondo07.jpg'];
var fondo_actual = 0;
// aqui hacemos la rotación
var CambiarFondo = function(){
if (fondo_actual == fondos.length) {
fondo_actual = 0;
}
var precargar =fondo_actual++;
var precargar2 = precargar+2;
// cambiamos el background del body
document.body.style.backgroundImage = 'url('+ fondos[precargar]+ ')';
// cargamos en el div no visible "#precarga" la imagen siguiente que se cargará en el body
// para ya tenerla en la cache, comenzamos con la imagen 3, ya que la 1 y 2 las tenemos en el css
document.getElementById('precarga').style.backgroundImage = 'url('+fondos[precargar2]+ ')';
}
//aqui definís el tiempo en milisegundos e inicias la función con setInterval para que se repita indefinidamente
window.setInterval(CambiarFondo, 10000);
//]]>
<div id="precarga"><!-- precarga de backgrounds --></div> <h1>Cambiar background cada n segundos
</h1>
Demo
http://foros.emprear.com/javascript/...orotarbg2.html
Saludos