2017-07-19 2 views
1

Ich habe eine statische Diashow mit Bootstrap3 Karussell, das gut funktioniert und mein Ziel ist es, es dynamisch zu machen. Ich kann nicht wirklich herausfinden, während die Bilder nicht angezeigt werden, während die Untertitel tun.Fullscreen Bildhintergrund Bootsrap3 Karussell zu diplay

Diese html direkt den Body-Tag unten, bevor alle anderen Inhalte, wie angegeben:

<div class="carousel slide carousel-fade" data- ride="carousel"> 

    <!-- Wrapper for slides --> 
    <div class="carousel-inner" role="listbox"> 

    </div> 
</div> 

Und eine Javascript-Funktion:

function loadBanners() { 
    var json; 
    $.ajax({ 
     type: "GET", 
     url: "BannerServ", 
     dataType: "json", 
     success: function(data) { 

      json = JSON.stringify(data); 
      $.each(
       $.parseJSON(json), 
       function(index, arrayObj) { 
        var imageName = arrayObj.image; 
        var caption = arrayObj.title; 

        var $cssStyle = "{ background: url(" + imageName + ") no-repeat center center fixed;\ 
            -webkit-background-size: cover;\ 
            -moz-background-size: cover;\ 
            -o-background-size: cover;\ 
            background-size: cover; }"; 


        $('<div class="item"><div class="carousel-caption">' + caption + '</div></div>').appendTo('.carousel-inner'); 
        $('.item:nth-child(' + index + 1 + ')').css($cssStyle); 
       }); 
      $('.item').first().addClass('active'); 
      $('.carousel').carousel({ 
       interval: 1000 * 10 
      }); 


     } 
    }); 
} 

Bitte Ich brauche Hilfe gemacht, das Bild zu bekommen.

+0

Dies wird wahrscheinlich im Zusammenhang mit dem Bootstrap JS initialisiert, bevor Sie Ihre Bilder bereit sind. Versuchen Sie, den Bootstrap JS AFTER-Erfolg bei Ihrem Ajax-Aufruf zu laden oder zu initialisieren, wenn ALLE Bilder geladen sind. –

+0

Ich tat dies, aber es immer noch nicht angezeigt: abgeschlossen: function() { $ ('. Karussell'). Karussell ({ Intervall: 1000 * 10 }); } – user3673744

Antwort

0

Wenn Ihr Style-Objekt ($ cssStyle) zu schaffen versuchen, ein tatsächliches Objekt anstelle einer Zeichenfolge mit:

var $cssStyle = { "background": "url('" + imageName + "') no-repeat center center fixed","-webkit-background-size": "cover","-moz-background-size": "cover","-o-background-size": "cover", "background-size": "cover" } 

jQuery CSS() Funktion übernimmt ein Objekt als Parameter, wenn mehrere Felder aktualisiert werden.

Siehe auch: How to define multiple CSS attributes in JQuery?

+0

Ihre Antwort hilft wirklich, jetzt kann ich das erste Bild angezeigt, während die anderen beiden nicht sehen. Könnte es von hier sein: $ ('. item: nth-child (' + index + 1 + ')'). css ($ cssStyle); Ich muss die generierten Elemente mit dem neuen Stil aktualisieren. – user3673744

+0

Ich habe den Code in Ajax Erfolg ändern, und es funktioniert nahtlos: var item = $ ('

'); var captions = $ (''); $ (Element) .append (Bildunterschriften); $ (item) .appendTo ('. Karussell-inner'). Css ($ cssStyle); – user3673744