2017-10-16 2 views
0

Ich habe ein Bootstrap Akkordeon & Ich würde gerne State Pfeile hinzufügen.Add up/down Pfeile zu Bootstrap Akkordeon

So werden die Pfeile nach unten gedrückt, wenn sie ausgeblendet werden.

Mein aktueller Code ist hier (einschließlich Demo): https://jsfiddle.net/m1xj0avo/

Vielen Dank für jede Beratung.

$(function() { 
 

 
    var active = true; 
 

 
    $('#collapse-init').click(function() { 
 
     if (active) { 
 
      active = false; 
 
      $('.panel-collapse').collapse('show'); 
 
      $('.panel-title').attr('data-toggle', ''); 
 
      $(this).text('Enable accordion behavior'); 
 
     } else { 
 
      active = true; 
 
      $('.panel-collapse').collapse('hide'); 
 
      $('.panel-title').attr('data-toggle', 'collapse'); 
 
      $(this).text('Disable accordion behavior'); 
 
     } 
 
    }); 
 
    
 
    $('#accordion').on('show.bs.collapse', function() { 
 
     if (active) $('#accordion .in').collapse('hide'); 
 
    }); 
 

 
});
.panel-title:hover { 
 
    cursor: pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 
 
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet"/> 
 
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script> 
 
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/> 
 
<button id="collapse-init" class="btn btn-primary"> 
 
    Disable accordion behavior 
 
</button> 
 
<br/><br/> 
 

 
<div class="panel-group" id="accordion"> 
 
    <!-- First Panel --> 
 
    <div class="panel panel-default"> 
 
     <div class="panel-heading"> 
 
      <h4 class="panel-title" 
 
       data-toggle="collapse" 
 
       data-target="#collapseOne"> 
 
       Collapsible Group Item #1 
 
      </h4> 
 
     </div> 
 
     <div id="collapseOne" class="panel-collapse collapse"> 
 
      <div class="panel-body"> 
 
       Anim pariatur cliche reprehenderit, 
 
       enim eiusmod high life accusamus terry richardson ad squid. 
 
      </div> 
 
     </div> 
 
    </div> 
 
    
 
    <!-- Second Panel --> 
 
    <div class="panel panel-default"> 
 
     <div class="panel-heading"> 
 
      <h4 class="panel-title" 
 
       data-toggle="collapse" 
 
       data-target="#collapseTwo"> 
 
       Collapsible Group Item #2 
 
      </h4> 
 
     </div> 
 
     <div id="collapseTwo" class="panel-collapse collapse"> 
 
      <div class="panel-body"> 
 
       Anim pariatur cliche reprehenderit, 
 
       enim eiusmod high life accusamus terry richardson ad squid. 
 
      </div> 
 
     </div> 
 
    </div> 
 
    
 
    <!-- Third Panel --> 
 
    <div class="panel panel-default"> 
 
     <div class="panel-heading"> 
 
      <h4 class="panel-title" 
 
       data-toggle="collapse" 
 
       data-target="#collapseThree"> 
 
       Collapsible Group Item #3 
 
      </h4> 
 
     </div> 
 
     <div id="collapseThree" class="panel-collapse collapse"> 
 
      <div class="panel-body"> 
 
       Anim pariatur cliche reprehenderit, 
 
       enim eiusmod high life accusamus terry richardson ad squid. 
 
      </div> 
 
     </div> 
 
    </div> 
 
</div> 
 
    
 
    
 
    
 
    
 
    
 
    
 
<!-- Post Info --> 
 
<div style='position:fixed;bottom:0;left:0;  
 
      background:lightgray;width:100%;'>For this SO Question: <a href='http://stackoverflow.com/q/20347553/1366033'>Keep Accordions Open</a> 
 

 
    <br/>Find documentation: <a href='http://getbootstrap.com/javascript/#collapse-usage'>Bootstrap Collapse Usage</a> 
 

 
    <br/>Fork This Skeleton Here <a href='http://jsfiddle.net/KyleMit/kcpma/'>Bootrsap 3.0 Skeleton</a> 
 

 
    <br/> 
 
    <div>

+2

können Sie versuchen, eine Klasse auf Panel-Element auf Bootstrap-Ereignisse mit javascript: https://v4-alpha.getbootstrap.com/components/collapse/#events binden und dann css (rotieren 180%) den Pfeil, wenn Klasse ist auf dem Panel :-). Viel Glück. –

+0

Hier gehts - https://codepen.io/nhembram/pen/XKEJJp – maxshuty

Antwort

3

Es gibt CSS-only-Lösungen, die Verwendung von einigen der Auslöser, die Bootstrap Akkordeon bereits an Ort und Stelle zu machen. Ein erweiterter .panel-title hat beispielsweise einen Wert von [area-expanded="true"], den wir als CSS-Selektor verwenden können.

, die mit im Auge Sie folgenden Code verwenden können:

.panel-title { 
 
    position: relative; 
 
} 
 
    
 
.panel-title::after { 
 
\t content: "\f107"; 
 
\t color: #333; 
 
\t top: -2px; 
 
\t right: 0px; 
 
\t position: absolute; 
 
    font-family: "FontAwesome" 
 
} 
 

 
.panel-title[aria-expanded="true"]::after { 
 
\t content: "\f106"; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 

 
<div class="panel-group" id="accordion"> 
 
    <!-- First Panel --> 
 
    <div class="panel panel-default"> 
 
     <div class="panel-heading"> 
 
      <h4 class="panel-title" data-toggle="collapse" data-target="#collapseOne"> 
 
       Collapsible Group Item #1 
 
      </h4> 
 
     </div> 
 
     <div id="collapseOne" class="panel-collapse collapse"> 
 
      <div class="panel-body"> 
 
       Anim pariatur cliche reprehenderit, 
 
       enim eiusmod high life accusamus terry richardson ad squid. 
 
      </div> 
 
     </div> 
 
    </div> 
 
    
 
    <!-- Second Panel --> 
 
    <div class="panel panel-default"> 
 
     <div class="panel-heading"> 
 
      <h4 class="panel-title" data-toggle="collapse" data-target="#collapseTwo"> 
 
       Collapsible Group Item #2 
 
      </h4> 
 
     </div> 
 
     <div id="collapseTwo" class="panel-collapse collapse"> 
 
      <div class="panel-body"> 
 
       Anim pariatur cliche reprehenderit, 
 
       enim eiusmod high life accusamus terry richardson ad squid. 
 
      </div> 
 
     </div> 
 
    </div> 
 
    
 
    <!-- Third Panel --> 
 
    <div class="panel panel-default"> 
 
     <div class="panel-heading"> 
 
      <h4 class="panel-title" data-toggle="collapse" data-target="#collapseThree"> 
 
       Collapsible Group Item #3 
 
      </h4> 
 
     </div> 
 
     <div id="collapseThree" class="panel-collapse collapse"> 
 
      <div class="panel-body"> 
 
       Anim pariatur cliche reprehenderit, 
 
       enim eiusmod high life accusamus terry richardson ad squid. 
 
      </div> 
 
     </div> 
 
    </div> 
 
</div>

Die Carets angewendet werden mit Schrift Ehrfürchtig und die :after Pseudo-Selektor.

+0

Vielen Dank für Ihre Zeit hier, Robert - es wird sehr geschätzt. – michaelmcgurk