這篇文章跟大家詳細介紹一下Bootstrap中的手風琴效果。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
Bootstrap 框架中 Collapse外掛程式(摺)其實就是我們常見的手風琴效果。當單擊一個觸發元素時,在另一個可折疊區域進行顯示或隱藏,再次單擊時可以反轉顯示狀態。經典的場景是多個折疊區域的手風琴風格以及單一title/content的風格。 【相關推薦:《bootstrap教學》】
#手風琴最關鍵的部分,就是每個標題對應有一個內容,在Bootstrap框架中將這兩個部分組合起來稱為一個panel面板,如下邊效果所示,有三個panel面板,將這三個面板組合在一起,就是一個面板組合 panel-group,也就是手風琴的結構
簡單點就是一個觸發器和一個折疊區
<button type="button" class="btn btn-danger" data-toggle="collapse" data-target="#demo">触发器</button> <div id="demo" class="collapse in">折叠区</div>
<div class="panel-group" id="accordion"> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">标题一</a></h4> </div> <div id="collapseOne" class="panel-collapse collapse in"> <div class="panel-body">标题一对应的内容</div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">标题二</a></h4> </div> <div id="collapseTwo" class="panel-collapse collapse"> <div class="panel-body">标题二对应的内容</div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" href="#collapseThree">标题三</a></h4> </div> <div id="collapseThree" class="panel-collapse collapse"> <div class="panel-body">标题三对应的内容</div> </div> </div> </div>
<div class="panel-group" id="myAccordion"> <div class="panel panel-accordion panel-default"></div> <div class="panel panel-accordion panel-default"></div> <div class="panel panel-accordion panel-default"></div> </div>第二步:為面板新增內容,每個面板包括兩個部分,第一個是面板標題 panel-heading,並且在這裡面添加標題 panel-title。第二部分是面板內容,也就是折疊區,使用 panel-collapse 樣式
<div class="panel panel-accordion panel-default"> <div class="panel-heading"> <h4 class="panel-title">标题一</h4> </div> <div class="panel-collapse"> <div class="panel-body">折叠区内容...</div> </div> </div>第三步:為了把標題和內容區捆綁在一起,可以透過錨連結的方法,把標題區域和麵板區連在一起
<div class="panel-group" id="myAccordion"> <div class="panel panel-accordion panel-default"> <div class="panel-heading"> <h4 class="panel-title"><a href="#panel1">标题一</a></h4> </div> <div class="panel-collapse" id="panel1"> <div class="panel-body">折叠区内容...</div> </div> </div> <div class="panel panel-accordion panel-default"> <div class="panel-heading"> <h4 class="panel-title"><a href="#panel2">标题二</a></h4> </div> <div class="panel-collapse" id="panel2"> <div class="panel-body">折叠区内容...</div> </div> </div> ...... </div>第四步:控制面板內容區是否可視。在Bootstrap框架中,如果想要讓內容區域不可見,只需要在panel-collapse 樣式上加入 collapse;如果想要讓內容區域預設可見,則需要新增樣式collapse和in
<div class="panel panel-accordion panel-default"> <div class="panel-heading"> <h4 class="panel-title"><a href="#panel1">标题一</a></h4> </div> <div class="panel-collapse collapse" id="panel1"> <div class="panel-body">折叠区内容...</div> </div> </div>第五步:啟動手風琴互動行為。要完成互動行為,需要在標題連結中自訂兩個屬性,一個是data-toggle,並且取值為collapse;另一個是data-target,取值為各個面板內容區的標識符,比如說ID,在這個例子分別是#panel1、#panel2和#panel3:
data-target="#panel1"也可以,因為前面已經有了
href="#panel1",但如裡是button按鈕當觸發器就必須使用
data-target="#panel1"語句
<div class="panel panel-accordion panel-default"> <div class="panel-heading"> <h4 class="panel-title"><a href="#panel1" data-toggle="collapse" data-target="#panel1">标题一</a></h4> </div> <div class="panel-collapse collapse in" id="panel1"> <div class="panel-body">折叠区内容...</div> </div> </div>第六步:定義data-parent屬性,實作點擊其中一個元素時,關閉所有的折疊區,再開啟所點選的區域(如果所點選區域是展示的,則會關閉)。這個data-parent取值與手風琴面板容器的標識符相匹配,例如這個例子是指 #myAccordion
<div class="panel-group" id="myAccordion"> <div class="panel panel-accordion panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a href="#panel1" data-toggle="collapse" data-target="#panel1" data-parent="#myAccordion">标题一</a> </h4> </div> …透過以上6步,可以總結出以下要點
<div class="panel-group" id="accordion"> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" href="#panel1">标题一</a></h4> </div> <div id="panel1" class="panel-collapse collapse in"> <div class="panel-body">折叠区内容一</div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" href="#panel2">标题二</a></h4> </div> <div id="panel2" class="panel-collapse collapse"> <div class="panel-body">折叠区内容二</div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" href="#panel3">标题三</a></h4> </div> <div id="panel3" class="panel-collapse collapse"> <div class="panel-body">折叠区内容三</div> </div> </div> </div>
#【關鍵字】
$(element).collapse('show');//显示折叠区域 $(element).collapse('hide');//隐藏折叠区域 $(element).collapse('toggle');//反转折叠区域
<button>显示折叠区域</button> <button>隐藏折叠区域</button> <button>反转折叠区域</button> <div> <div> <div> <h4><a>标题一</a></h4> </div> <div> <div>折叠区内容一</div> </div> </div> <div> <div> <h4><a>标题二</a></h4> </div> <div> <div>折叠区内容二</div> </div> </div> <div> <div> <h4><a>标题三</a></h4> </div> <div> <div>折叠区内容三</div> </div> </div> </div> <script> $(function(){ $('#btn1').click(function(){ $('.collapse').collapse('show'); }) $('#btn2').click(function(){ $('.collapse').collapse('hide'); }) $('#btn3').click(function(){ $('.collapse').collapse('toggle'); }) }) </script>
【事件】
此外掛支援4種類型的事件訂閱show.bs.collapse show方法调用之后立即触发该事件 shown.bs.collapse 此事件在collapse已经显示出来(并且同时在 CSS 过渡效果完成)之后被触发 hide.bs.collapse hide方法调用之后立即触发该事件。 hidden.bs.collapse 此事件在collapse被隐藏(并且同时在 CSS 过渡效果完成)之后被触发
<div class="panel-group" id="accordion"> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" data-html="标题一" href="#panel1">标题一</a></h4> </div> <div id="panel1" class="panel-collapse collapse in"> <div class="panel-body">折叠区内容一</div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" data-html="标题二" href="#panel2">标题二</a></h4> </div> <div id="panel2" class="panel-collapse collapse"> <div class="panel-body">折叠区内容二</div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" data-html="标题三" href="#panel3">标题三</a></h4> </div> <div id="panel3" class="panel-collapse collapse"> <div class="panel-body">折叠区内容三</div> </div> </div> </div> <script> $(function(){ $("#accordion").on("show.bs.collapse",function(e){ var $element = $(e.target).siblings().first().find('a'); $element.html($element.data('html') + '[折叠区已打开]'); }).on("hide.bs.collapse",function(e){ var $element = $(e.target).siblings().first().find('a'); $element.html($element.data('html') + '[折叠区已关闭]'); }) }); </script>更多程式相關知識,請造訪:
程式設計入門! !
以上是詳解Bootstrap中的手風琴效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!