2016-06-06 10 views
0

Ich habe viele ähnliche Fragen gesehen, konnte aber keine Lösung finden. Ich habe ein Bootstrap-Jumbotron und einen Satz von 3 Bildern, um alle 10 Sekunden durchzulaufen. Das Problem ist, dass die erste URL erst nach Ablauf der ersten 10 Sekunden angezeigt wird. Nachdem das Array fertig ist, werden die Bilder korrekt wiedergegeben. Erst beim ersten Laden ist das Bild leer. Ich habe versucht, das Hintergrundbild über CSS und JQuery zu setzen, aber es gab immer noch Probleme mit dem Überspringen beim Laden des ersten Bildes.Drehe Hintergrund-URL alle 10 Sekunden

Der Kodex

var jumbotronBG = ['/image1.jpg', '/image2.jpg', '/image3.jpg']; 
 
var changeImage = $(".jumbotron"); 
 
    var i = 0; 
 
    
 
setInterval(function() { 
 
    changeImage.css({'background-image': 'url(' + jumbotronBG[i] + ")"}); 
 
     i = i + 1; 
 
     if (i == jumbotronBG.length) { 
 
     i = 0; 
 
     } 
 
}, 10000);
<div class="jumbotron"> 
 

 

 
</div>

Nur müssen einen Weg Zyklus alle 3 Bilder mit der Faust zu sein image1.jpg beim Laden der Seite zu finden.

+0

changeImage.css ({'Hintergrundbild': 'URL (' + mainIndexGif [i] + ')'}); ist die aktuelle Verwendung von Ticks/Quotes – Dylan

+0

Setzen Sie einfach die css von '.jumbotron' in Ihrer' .css' Datei auf 'background-image: url (/image1.jpg)' und dann, wenn Sie die Seite laden, wird es die erste sein Bild, dann starten Sie das Intervall bei 2 zum ersten Mal nach dem Laden der Seite. – Adjit

+0

Nur aus Neugier: Warum verwenden Sie Bootstrap [Karussell] (https://getbootstrap.com/javascript/#carousel) nicht, da Sie Bootstrap verwenden? Ich denke, dass Sie HTML jedem Einzelteil hinzufügen können, also können Sie ein Hintergrundbild für jedes Element einstellen. Und Sie können die Zeit zwischen Übergängen mit Optionen anpassen. –

Antwort

0

Ich sehe nichts falsch, außer nicht die background-image Änderung Last aufrufen? Geändert JavaScript-Code, dies zu beheben:

var jumbotronBG = ['https://placehold.it/100x100', 'https://placehold.it/200x200', 'https://placehold.it/300x300']; 
var changeImage = $(".jumbotron"); 
var i = 0; 

function cycleImage() { 
    changeImage.css({ 
    'background-image': 'url(' + jumbotronBG[i] + ")" 
    }); 
    i = i + 1; 
    if (i == jumbotronBG.length) { 
    i = 0; 
    } 
} 

setInterval(cycleImage, 1000); 
cycleImage(); 

This JSFiddle Werke, wie Sie richtig gedacht?

+0

Sie sind genau richtig @leroydev. Vielen Dank. Ich kann nicht glauben, dass ich es verpasst habe. – Dylan

Verwandte Themen