全面解析Bootstrap手风琴效果

触发手风琴可以通过自定义的data-toggle 属性来触发。其中data-toggle值设置为 collapse,data-target="#折叠区标识符"。

第一步:设计一个面板组合,里面有三个折叠区:

<div class="panel-group" id="accordion">
            <div class="panel panel-default"></div>
            <div class="panel panel-default"></div>
            <div class="panel panel-default"></div>
</div>

第二步:给面板添加内容,每个面板包括两个部分,第一个是面板标题 panel-heading,并且在这里面添加标题 panel-title。第二个部分是面板内容,也就是折叠区,使用 panel-collapse 样式。

<div class="panel panel-default">
                <div class="panel-heading">
                    <h4 class="panel-title">标题一</h4>
                </div>
                <div class="panel-collapse">
                    <div class="panel-body">
                        <div>折叠区内容...</div>
                    </div>
                </div>
            </div>

第三步:为了把标题和内容区捆绑在一起,可以通过锚链接的方法,把标题区域和面板区连在一起:

<div class="panel 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>
            </div>
            <div class="panel 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>
            </div>

第四步: 控制面板内容区是否可视。

在Bootstrap框架中,如果你想让内容区域不可视,只需要在 panel-collapse 样式上添加 collapse。每个面板的内容区都被隐藏起来了,变成不可视,但有时候希望默认第一个面板内容是可视的,需要怎么办?其实Bootstrap作者早就为大家做了这方面的考虑,你只需要在collapse基础上再追加 in 样式。

<div class="panel 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>
                </div>
            </div>
第五步:激活手风琴交互行为。 要完成交互行为,需要在标题链接中自定义两个属性,一个是data-toggle,并且取值为collapse;另一个是data-target,取值为各个面板内容区的标识符,比如说ID,在这个例子分别是#panel1、#panel2和#panel3
<div class="panel 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" id="panel1">
                    <div class="panel-body">
                        <div>折叠区内容...</div>
                    </div>
                </div>
            </div>

注意:在这个案例中不加入data-target="#panel1"也可以,因为前面已经有了href="#panel1",但如是button按钮作为触发器就必须使用data-target="#panel1"语句了。

第六步:定义data-parent属性,实现点击一个其中一个元素时,关闭所有的折叠区,再打开所单击的区域(如果所单击区域是展示的,则会关闭)。这个data-parent取值与手风琴面板容器的标识符相匹配,比如这个例子是指 #accordion:

<div class="panel panel-default">
                <div class="panel-heading">
                    <h4 class="panel-title"><a href="#panel1" data-toggle="collapse" data-parent="#accordion">标题一</a></h4>
                </div>
                <div class="panel-collapse collapse" id="panel1">
                    <div class="panel-body">
                        <div>折叠区内容...</div>
                    </div>
                </div>
            </div>

七. 完整代码

<div class="container">
    <div class="col-md-6">
        <div class="panel-group" id="accordion">
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h4 class="panel-title"><a href="#panel1" data-toggle="collapse" data-parent="#accordion">标题一</a></h4>
                </div>
                <div class="panel-collapse collapse" id="panel1">
                    <div class="panel-body">
                        <div>折叠区内容...</div>
                    </div>
                </div>
            </div>
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h4 class="panel-title"><a href="#panel2" data-toggle="collapse" data-parent="#accordion">标题二</a></h4>
                </div>
                <div class="panel-collapse collapse" id="panel2">
                    <div class="panel-body">
                        <div>折叠区内容...</div>
                    </div>
                </div>
            </div>
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h4 class="panel-title"><a href="#panel3" data-toggle="collapse" data-parent="#accordion">标题三</a></h4>
                </div>
                <div class="panel-collapse collapse" id="panel3">
                    <div class="panel-body">
                        <div>折叠区内容...</div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

不要忘了在<head>中引入bootstrap的css样式

<!-- Bootstrap 路径可以修改,确保路径正确-->
    <link rel="stylesheet" href="../reference/thirdpart/bootstrap/css/bootstrap.min.css">

在</body>前引入js

<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<script src="../reference/thirdpart/jquery/jquery.min.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script src="../reference/thirdpart/bootstrap/js/bootstrap.min.js"></script>











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值