2016-07-14 16 views
0

In Bootstrap (v3) ist es möglich, zwei divs zu haben, die einfach umschaltbar sind, also wird standardmäßig ein div angezeigt und ein Button schaltet zwischen den beiden um gezeigt?Verwenden von Collapse/Akkordeon um einen umschaltbaren div zu machen

Es fühlt sich an wie „Kollaps“ und/oder „Akkordeon“ sollte in der Lage sein, dies zu tun, aber ...

„Collapse“ erlaubt keine übergeordnete Elemente, zwischen den beiden zu wechseln und ...

Mit "Accordion" können alle Panels ausgeblendet werden.

Die gleiche Sache kann mit ein bisschen JQuery erreicht werden, aber ich frage mich, ob einige Verwendung der Daten * Attribute mir erlauben können, JS zu vermeiden. Außerdem möchte ich Standard-Bootstrap-Klassen so oft wie möglich verwenden.

+0

Mögliche Duplikat [Bootstrap Flip-Karte mit css3 verwandeln] (http://stackoverflow.com/questions/30698272/ Bootstrap-Flip-Card-mit-CSS3-Transformation) –

+0

@ ClydeLobo definitiv ähnlich, aber das scheint benutzerdefinierte Klassen zu verwenden; Ich wollte Bootstrap Einsen verwenden, idealerweise ohne explizite JS. –

Antwort

1

Sie können die toggle Methode des Minimierens verwenden.

HTML

<button class="btn btn-primary" type="button" id="btn"> 
    Button 
</button> 

<div id="grouped"> 
    <div class="collapse in fade" id="1"> 
     1. Suspendisse non nisl sit amet 
    </div> 
    <div class="collapse fade" id="2"> 
     2. Praesent congue erat at massa 
    </div> 
</div> 

Wie Sie sehen erste offen ist (hat Klasse in). Dann mit Javascript können wir sie wechseln

$("#btn").on("click", function(){ 
    $("#grouped .collapse").collapse('toggle'); 
}); 

Hinweis: fade Klasse ist optional, aber sieht besser mit ihm, meiner Meinung nach.

fiddle

aktualisieren ohne benutzerdefinierten JavaScript

<div id="grouped"> 
    <button class="btn btn-primary" type="button" id="btn" data-toggle="collapse" data-target=".collapse"> 
    Button 
    </button> 

    <div class="collapse in fade" id="1"> 
     1. Suspendisse non nisl sit amet 
    </div> 
    <div class="collapse fade" id="2"> 
     2. Praesent congue erat at massa 
    </div> 
</div> 

fiddle

+0

Das funktioniert, danke. Das einzige, was besser wäre, wenn es einen Weg gäbe, den JS nicht zu haben. Vielleicht zukünftige Versionen von Bootstrap wird es erlauben ... –

+1

@DanGravell Update Antwort, Lösung ohne benutzerdefinierte JavaScript – tmg

+0

Ah, natürlich schaltet der Toggle alle '.collapse' divs, so dass die' .in' eins verschwindet und der andere erscheint . : facepalm: –

Verwandte Themen