Probé tu algoritmo y no sucedió lo de la superposición de imágenes, pero como dices, no se adaptaban a la resolución. Elaboré un algoritmo alternativo basado en un plugin que hice hace un tiempo, lo probé en Chrome, Firefox, Opera y Safari (no tengo el IE) y hasta en el Opera Mobile del smartphone y va muy bien, aquí te lo dejo:
Código Javascript
:
Ver originalvar img = ['imagen1.jpg', 'imagen2.jpg', 'imagen3.jpg', 'imagen4.jpg', 'imagen5.jpg'],
total = img.length,
index = 0;
document.body.style.background = "url('" + img[index] + "') no-repeat center center fixed";
document.body.style.backgroundSize = "cover";
var fondo = {
rotar: function(){
index = index == total - 1 ? 0 : ++index;
document.body.style.background = "url('" + img[index] + "') no-repeat center center fixed";
document.body.style.backgroundSize = "cover";
}
};
setInterval(fondo.rotar, 15000);
Como podrás notar, cada vez que se ejecuta la función que realiza el cambio de imagen, verifico el valor del índice, si es igual a la posición de la última imagen en el array, le doy cero como valor para que la rotación se produzca desde la primera imagen, creando así un bucle infinito, pero si el valor del índice aún no alcanza a la última posición del array, aumenta en uno, mostrando así la siguiente imagen.
DEMO
Saludos