全面解析Bootstrap手風琴效果


觸發手風琴可以通過自定義的data-toggle 屬性來觸發。其中data-toggle值設置為 collapse,data-target="#折疊區標識符"。

第一步:設計一個面板組合,里面有三個折疊區:

1 <div class="panel-group" id="myAccordion">  
2   <div class="panel panel-accordion panel-default"></div>  
3   <div class="panel panel-accordion panel-default"></div>  
4   <div class="panel panel-accordion panel-default"></div>  
5 </div> 

第二步:給面板添加內容,每個面板包括兩個部分,第一個是面板標題 panel-heading,並且在這里面添加標題 panel-title。第二個部分是面板內容,也就是折疊區,使用 panel-collapse 樣式。

1 <div class="panel panel-accordion panel-default">  
2   <div class="panel-heading">  
3     <h4 class="panel-title">標題一</h4>  
4   </div>  
5   <div class="panel-collapse">  
6     <div class="panel-body">折疊區內容...</div>  
7   </div>  
8 </div>  

第三步:為了把標題和內容區捆綁在一起,可以通過錨鏈接的方法,把標題區域和面板區連在一起:

 1 <div class="panel-group" id="myAccordion">  
 2   <div class="panel panel-accordion panel-default">  
 3     <div class="panel-heading">  
 4       <h4 class="panel-title"><a href="#panel1">標題一</a></h4>  
 5     </div>  
 6     <div class="panel-collapse" id="panel1">  
 7       <div class="panel-body">折疊區內容...</div>  
 8     </div>  
 9   </div>  
10   <div class="panel panel-accordion panel-default">  
11     <div class="panel-heading">  
12       <h4 class="panel-title"><a href="#panel2">標題二</a></h4>  
13     </div>  
14     <div class="panel-collapse" id="panel2">  
15       <div class="panel-body">折疊區內容...</div>  
16     </div>  
17   </div>  
18   ......  
19 </div>  

第四步: 控制面板內容區是否可視。在Bootstrap框架中,如果你想讓內容區域不可視,只需要在 panel-collapse 樣式上添加 collapse

    每個面板的內容區都被隱藏起來了,變成不可視,但有時候希望默認第一個面板內容是可視的,需要怎么辦?其實Bootstrap作者早就為大家做了這方面的考慮,你只需要在collapse基礎上再追加 in 樣式.

1 <div class="panel panel-accordion panel-default">  
2   <div class="panel-heading">  
3     <h4 class="panel-title"><a href="#panel1">標題一</a></h4>  
4   </div>  
5   <div class="panel-collapse collapse" id="panel1">  
6     <div class="panel-body">折疊區內容...</div>  
7   </div>  
8 </div>  

第五步:激活手風琴交互行為。要完成交互行為,需要在標題鏈接中自定義兩個屬性,一個是data-toggle,並且取值為collapse;另一個是data-target,取值為各個面板內容區的標識符,比如說ID,在這個例子分別是#panel1、#panel2和#panel3

1 div class="panel panel-accordion panel-default">  
2   <div class="panel-heading">  
3     <h4 class="panel-title"><a href="#panel1" data-toggle="collapse" data-target="#panel1">標題一</a></h4>  
4   </div>  
5   <div class="panel-collapse collapse in" id="panel1">  
6     <div class="panel-body">折疊區內容...</div>  
7   </div>  
8 </div> 
注意:在這個案例中不加入data-target="#panel1"也可以,因為前面已經有了href="#panel1",但如是button按鈕作為觸發器就必須使用data-target="#panel1"語句了。

第六步:定義data-parent屬性,實現點擊一個其中一個元素時,關閉所有的折疊區,再打開所單擊的區域(如果所單擊區域是展示的,則會關閉)。這個data-parent取值與手風琴面板容器的標識符相匹配,比如這個例子是指 #myAccordion:
1 <div class="panel-group" id="myAccordion">  
2   <div class="panel panel-accordion panel-default">  
3     <div class="panel-heading">  
4       <h4 class="panel-title">  
5         <a href="#panel1" data-toggle="collapse" data-target="#panel1" data-parent="#myAccordion">標題一</a>  
6       </h4>  
7     </div>  
8 ...  

七. 完整代碼

 1 <div class="panel-group" id="accordion">  
 2   <div class="panel panel-default">  
 3     <div class="panel-heading">  
 4       <h4 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">標題一</a></h4>  
 5     </div>  
 6     <div id="collapseOne" class="panel-collapse collapse in">  
 7       <div class="panel-body">標題一對應的內容</div>  
 8     </div>  
 9   </div>  
10   <div class="panel panel-default">  
11     <div class="panel-heading">  
12       <h4 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">標題二</a></h4>  
13     </div>  
14     <div id="collapseTwo" class="panel-collapse collapse">  
15       <div class="panel-body">標題二對應的內容</div>  
16     </div>  
17   </div>  
18   <div class="panel panel-default">  
19     <div class="panel-heading">  
20       <h4 class="panel-title"><a data-toggle="collapse"data-parent="#accordion"href="#collapseThree">標題三</a></h4>  
21     </div>  
22     <div id="collapseThree" class="panel-collapse collapse">  
23       <div class="panel-body">標題三對應的內容</div>  
24     </div>  
25   </div>  
26 </div>  

效果圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM