Sé que esto suena simple y busqué un script en la web, pero no puedo encontrar nada. Solo quiero que mis fondos cambien cada 15 segundos más o menos automáticamente. (como una presentación de diapositivas de fotos pero como fondo). Mi hoja de estilo controla la imagen bg en la etiqueta del cuerpo. Gracias por la ayuda.

2
Fab 24 jul. 2011 a las 20:26

3 respuestas

La mejor respuesta

Con setInterval, puede llamar a una función arbitraria en, bueno, intervalos:

(function() {
    var curImgId = 0;
    var numberOfImages = 42; // Change this to the number of background images
    window.setInterval(function() {
        $('body').css('background-image','url(/background' + curImgId + '.jpg)');
        curImgId = (curImgId + 1) % numberOfImages;
    }, 15 * 1000);
})();
7
phihag 24 jul. 2011 a las 17:10
<script src="http://codeorigin.jquery.com/jquery-2.0.3.min.js"></script>
<script style="text/javascript">
    (function () {
        var curImgId = 0;
        var numberOfImages = 5; // Change this to the number of background images
        window.setInterval(function() {
            $('body').css('background','url("'+ curImgId +'.jpg")');// set the image path here
            curImgId = (curImgId + 1) % numberOfImages;
        }, 15 * 1000);
    })();

</script>
1
user2676376 12 ago. 2013 a las 20:22

Suficientemente simple para hacer con setInterval:

var currentIndex = 1;
var totalCount = 21;

setInterval(function() {
    if (currentIndex > totalCount)
        currentIndex = 1;

    $(body).css('background-image', 'url(/bg' + currentIndex++ + '.jpg)');
}, 15000);
3
Kon 24 jul. 2011 a las 16:56