搜尋
首頁web前端Bootstrap教程詳解Bootstrap中的手風琴效果

詳解Bootstrap中的手風琴效果

Apr 21, 2021 am 10:30 AM
bootstrap手風琴效果

這篇文章跟大家詳細介紹一下Bootstrap中的手風琴效果。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

詳解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 id="a-nbsp-data-toggle-collapse-nbsp-data-parent-accordion-nbsp-href-collapseOne-标题一-a"><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 id="a-nbsp-data-toggle-collapse-nbsp-data-parent-accordion-nbsp-href-collapseTwo-标题二-a"><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 id="a-nbsp-data-toggle-collapse-nbsp-data-parent-accordion-nbsp-href-collapseThree-标题三-a"><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>

詳解Bootstrap中的手風琴效果

##聲明式觸發


觸發手風琴可以透過自訂的 data-toggle 屬性來觸發。其中data-toggle值設定為 collapse,data-target="#折疊區標識符"。接下來我們來看一個簡單的範例


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

<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 id="标题一">标题一</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 id="a-nbsp-href-panel-标题一-a"><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 id="a-nbsp-href-panel-标题二-a"><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 id="a-nbsp-href-panel-标题一-a"><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 id="a-nbsp-href-panel-nbsp-data-toggle-collapse-nbsp-data-target-panel-标题一-a"><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步,可以總結出以下要點


#  ☑使用panel 的panel-title 作為觸發元素,使用panel-body的父元素作為折疊區;

#  ☑ 使用一個panel-group 來包含多個panel,從而實現手風琴效果; 

# ☑ 每個panel 裡的觸發元素都要指定data-parent屬性,data-parent 屬性的值對應panel-group樣式元素的ID或其他樣式識別碼;

  ☑ 觸發元素需要指定data-toggle ,且值為collapse;

  ☑ 觸發元素需要指定data-target屬性, data-target屬性的值對應panel-body 的父元素的ID或其他樣式識別碼;如果是a元素,可以指定href屬性替代

<div class="panel-group" id="accordion">
    <div class="panel panel-default">
        <div class="panel-heading">
            <h4 id="a-nbsp-data-toggle-collapse-nbsp-data-parent-accordion-nbsp-href-panel-标题一-a"><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 id="a-nbsp-data-toggle-collapse-nbsp-data-parent-accordion-nbsp-href-panel-标题二-a"><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 id="a-nbsp-data-toggle-collapse-nbsp-data-parent-accordion-nbsp-href-panel-标题三-a"><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>

詳解Bootstrap中的手風琴效果

JS觸發


#【關鍵字】

$(element).collapse('show');//显示折叠区域
$(element).collapse('hide');//隐藏折叠区域
$(element).collapse('toggle');//反转折叠区域
<button>显示折叠区域</button>
<button>隐藏折叠区域</button>
<button>反转折叠区域</button>

<div>
    <div>
        <div>
            <h4 id="a-标题一-a"><a>标题一</a></h4>
        </div>
        <div>
            <div>折叠区内容一</div>
        </div>
    </div>
    <div>
        <div>
            <h4 id="a-标题二-a"><a>标题二</a></h4>
        </div>
        <div>
            <div>折叠区内容二</div>
        </div>
    </div>
    <div>
        <div>
            <h4 id="a-标题三-a"><a>标题三</a></h4>
        </div>
        <div>
            <div>折叠区内容三</div>
        </div>
    </div>
</div>
<script>
$(function(){
    $(&#39;#btn1&#39;).click(function(){
        $(&#39;.collapse&#39;).collapse(&#39;show&#39;);
    })
    $(&#39;#btn2&#39;).click(function(){
        $(&#39;.collapse&#39;).collapse(&#39;hide&#39;);
    })
    $(&#39;#btn3&#39;).click(function(){
        $(&#39;.collapse&#39;).collapse(&#39;toggle&#39;);
    })
})
</script>

詳解Bootstrap中的手風琴效果

【事件】

此外掛支援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 id="a-nbsp-data-toggle-collapse-nbsp-data-parent-accordion-nbsp-data-html-标题一-nbsp-href-panel-标题一-a"><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 id="a-nbsp-data-toggle-collapse-nbsp-data-parent-accordion-nbsp-data-html-标题二-nbsp-href-panel-标题二-a"><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 id="a-nbsp-data-toggle-collapse-nbsp-data-parent-accordion-nbsp-data-html-标题三-nbsp-href-panel-标题三-a"><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(&#39;a&#39;);
        $element.html($element.data(&#39;html&#39;) + &#39;[折叠区已打开]&#39;);
    }).on("hide.bs.collapse",function(e){
        var $element = $(e.target).siblings().first().find(&#39;a&#39;);
        $element.html($element.data(&#39;html&#39;) + &#39;[折叠区已关闭]&#39;);
    })

});    
</script>

詳解Bootstrap中的手風琴效果

更多程式相關知識,請造訪:

程式設計入門! !

以上是詳解Bootstrap中的手風琴效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:博客园。如有侵權,請聯絡admin@php.cn刪除
React的引導:優勢和最佳實踐React的引導:優勢和最佳實踐Apr 16, 2025 am 12:17 AM

將Bootstrap集成到React項目中的優勢包括:1)快速開發,2)一致性和可維護性,3)響應式設計。通過直接引入CSS文件或使用React-Bootstrap庫,可以在React項目中高效使用Bootstrap的組件和样式。

Bootstrap:網絡框架的快速指南Bootstrap:網絡框架的快速指南Apr 15, 2025 am 12:10 AM

Bootstrap是由Twitter開發的框架,幫助快速搭建響應式、移動優先的網站和應用。 1.易用性和豐富組件庫使開發更快。 2.龐大社區提供支持和解決方案。 3.通過CDN引入並使用類名控製樣式,如創建響應式網格。 4.可自定義樣式和擴展組件。 5.優點包括快速開發和響應式設計,缺點是樣式一致性和學習曲線。

打破bootstrap:是什麼以及為什麼重要打破bootstrap:是什麼以及為什麼重要Apr 14, 2025 am 12:05 AM

Bootstrapisafree,開放式frameworkthatsimplifiesRessiveandMobile-firstwebsitedEvelvelopment.itofferspre-styledComponentsAndAgridSystem,流化inthiningthecreationofaesthethetshethetshetshetshetshetshetshetshetshetshethetshethet interpleaseansing和Runctinctionalwebdesigns。

Bootstrap:使網頁設計更容易Bootstrap:使網頁設計更容易Apr 13, 2025 am 12:10 AM

Bootstrap讓網頁設計更容易的原因是其預設組件、響應式設計和豐富的社區支持。 1)預設組件庫和样式讓開發者無需編寫複雜的CSS代碼;2)內置網格系統簡化了響應式佈局的創建;3)社區支持提供了豐富的資源和解決方案。

Bootstrap的影響:加速網絡開發Bootstrap的影響:加速網絡開發Apr 12, 2025 am 12:05 AM

Bootstrap加速了Web開發,通過提供預定義的樣式和組件,開發者可以快速搭建響應式網站。 1)它縮短了開發時間,例如在項目中幾天內完成基本佈局。 2)通過Sass變量和mixins,Bootstrap允許定製樣式以滿足特定需求。 3)使用CDN版本可以優化性能,提高加載速度。

理解引導:核心概念和功能理解引導:核心概念和功能Apr 11, 2025 am 12:01 AM

Bootstrap是一個開源的前端框架,主要作用是幫助開發者快速構建響應式網站。 1)它提供了預定義的CSS類和JavaScript插件,方便實現複雜的UI效果。 2)Bootstrap的工作原理依賴於其CSS和JavaScript組件,通過媒體查詢實現響應式設計。 3)使用示例包括基本用法,如創建按鈕,以及高級用法,如自定義樣式。 4)常見錯誤包括類名拼寫錯誤和未正確引入文件,建議使用瀏覽器開發者工具調試。 5)性能優化可通過自定義構建工具實現,最佳實踐包括使用語義化HTML和Bootstrap的預定義

Bootstrap Deep Dive:響應式設計和高級佈局技術Bootstrap Deep Dive:響應式設計和高級佈局技術Apr 10, 2025 am 09:35 AM

Bootstrap通過網格系統和媒體查詢實現響應式設計,使網站適應不同設備。 1.使用預定義類(如col-sm-6)定義列寬。 2.網格系統基於12列,需注意總和不超12。3.使用斷點(如sm、md、lg)定義不同屏幕尺寸下的佈局。

Bootstrap面試問題:降落您夢想的前端工作Bootstrap面試問題:降落您夢想的前端工作Apr 09, 2025 am 12:14 AM

Bootstrap是一套開源的前端框架,用於快速開發響應式網站和應用。 1.它提供了響應式設計、一致的UI組件和快速開發的優勢。 2.網格系統使用flexbox佈局,基於12列結構,通過.container、.row和.col-sm-6等類實現。 3.自定義樣式可以通過修改SASS變量或覆蓋CSS實現。 4.常用JavaScript組件包括模態框、輪播圖和折疊。 5.優化性能可以通過只加載必要組件、使用CDN和壓縮合併文件來實現。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具