2017-10-16 288 views
0

我有一個Bootstrap手風琴&我想向它添加狀態箭頭。向上/向下箭頭添加到Bootstrap手風琴

所以箭頭在摺疊時會朝下,在展開時朝上。

我當前的代碼是在這裏(包括演示):https://jsfiddle.net/m1xj0avo/

非常感謝任何指導。

$(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

你可以嘗試使用javascript在引導事件的面板元素上綁定一個類:https://v4-alpha.getbootstrap.com/components/collapse/#events然後css變換(旋轉180%)當類是在面板上:-)。祝你好運。 –

+0

這裏你去 - https://codepen.io/nhembram/pen/XKEJJp – maxshuty

回答

3

只有CSS的解決方案,利用一些引導的手風琴已經到位的觸發器。例如,擴展的.panel-title的值爲[area-expanded="true"],我們可以將其用作CSS選擇器。

考慮到這一點,你可以使用這樣的代碼:

.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>

插入記號使用字體真棒和:after僞選擇器。

+0

非常感謝你在這裏的時間,羅伯特 - 這是非常感謝。 – michaelmcgurk