2016-09-14 2 views
-1

Ich habe ein Webprojekt und ich benutze Bootstrap's Grid-System. In meiner aktuellen Einrichtung zeige ich 3 Bilder unter Verwendung col-xs-4 an, so dass 3 Bilder auf jeder Bildschirmgröße pro Zeile angezeigt werden. Allerdings möchte ich jetzt nur 1 Bild anzeigen, wenn die Bildschirmgröße kleiner wird. Das ist mein Original-Code:jQuery + Bootstrap Grid - Zeige Bilder basierend auf der Bildschirmgröße

<div class="row"> 
    <div class="col-xs-4"> 
    <img src="https://images.google.com/images/branding/googleg/1x/googleg_standard_color_128dp.png"> 
    </div> 
    <div class="col-xs-4"> 
    <img src="https://images.google.com/images/branding/googleg/1x/googleg_standard_color_128dp.png"> 
    </div> 
    <div class="col-xs-4"> 
    <img src="https://images.google.com/images/branding/googleg/1x/googleg_standard_color_128dp.png"> 
    </div> 
</div> 

Wunsch Ausgang:
Desktop-Ansicht: enter image description here


Mobile Ansicht:

enter image description here

Ich bin mir bewusst, dass ich einfach einstellen die display to none, wenn die Bildschirmgröße unter eine CEE fällt Ich möchte, dass die Webanwendung nur 1 Bild lädt, um es schneller zu machen (nur display:none; lädt immer noch die anderen 2 Bilder)

Irgendwelche Vorschläge, wie man das macht?
Meine Idee ist es, jquery/javascript zu verwenden, um HTML-Seiten zu generieren. Hier ist die jsfiddle um zu spielen: https://jsfiddle.net/Lb92rv84/1/

+0

CSS können die HTML-Elemente nicht entfernen, müssen Sie Javascript verwenden, um die Bildschirmgröße zu berechnen zuerst, dann addieren sich die HTML-Elemente davon ab, was Ihr benötigt wird. –

+0

@ManaTinra Ich bin mir bewusst, dass css allein kann es nicht tun Ich habe gerade meinen Code hinzugefügt, um zu sagen, dass ich im Moment Bootstrap-Grid verwendet. und möchte einige Vorschläge, wie man es mit Hilfe von jquery –

Antwort

0

Ich habe die HTML-Elemente aus der Frage.

$(document).ready(function(){ 
 
    var width = $(window).width(); 
 
    var newdiv1 = $('<div class="col-xs-4"></div>'); 
 
    var image = '<img src="https://images.google.com/images/branding/googleg/1x/googleg_standard_color_128dp.png">'; 
 
    var el = newdiv1.append(image); 
 
    
 
    if (width >= 768){ 
 
    \t //html for screen wider than 768 
 
    \t el.appendTo('.target').clone().appendTo('.target').clone().appendTo('.target'); 
 
    }else{ 
 
    \t //html for screen smaller than 768 
 
    \t el.appendTo('.target'); 
 
    } 
 
})
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="container"> 
 
    <div class="row"> 
 
    <div class="target"></div> 
 
    </div> 
 
</div>

+0

Ich konnte es selbst herausfinden und das ist sehr nah an dem, was ich getan habe. Also wähle ich dies als Antwort aus. Vielen Dank –

-1

Versuchen benutzerdefinierte Klassen zu jedem Bild DIV zuweisen Sie ausblenden möchten:

<div class="row"> 
    <div class="col-xs-4 image-1"> 
    <I'm src="https://images.google.com/images/branding/googleg/1x/googleg_standard_color_128dp.png"> 
    </div> 
    <div class="col-xs-4 image-1"> 
    <img src="https://images.google.com/images/branding/googleg/1x/googleg_standard_color_128dp.png"> 
    </div> 
    <div class="col-xs-4"> 
    <img src="https://images.google.com/images/branding/googleg/1x/googleg_standard_color_128dp.png"> 
    </div> 
</div> 

Dann in Ihrem Breakpoint:

.image-1 img{ 
    display:none; 
} 

Auf diese Weise können Sie verwende dein div immer noch für andere Inhalte und verstecke nur Bilder.

+0

machen Sie bitte meine Frage, ich erwähnte ausdrücklich, dass das Verbergen des Bildes keine Option ist –

+0

Dann ist das nicht möglich in CSS. Dein Konzept ist falsch. Das Weiterleiten von JavaScript für unnötige Stile ist ebenfalls falsch, wenn Sie die Struktur für ein besseres Modell ändern können. Es macht keinen Sinn, ein Bild zu verlassen und die anderen beiden zu verstecken. Keine gute UX. –

+0

Das ist genau meine Frage. Ich habe nicht gesagt, ich werde CSS verwenden, um all dies zu tun. Ich gebe nur den aktuellen Stand meines Projekts an und frage nach möglichen Ideen, wie man das mit jQuery macht. –

Verwandte Themen