全面解析Bootstrap手风琴效果


Posted in Javascript onApril 17, 2020

触发手风琴可以通过自定义的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 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

每个面板的内容区都被隐藏起来了,变成不可视,但有时候希望默认第一个面板内容是可视的,需要怎么办?其实Bootstrap作者早就为大家做了这方面的考虑,你只需要在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

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-target="#panel1"也可以,因为前面已经有了href="#panel1",但如是button按钮作为触发器就必须使用data-target="#panel1"语句了。
第六步,定义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>
...
七

 七. 完整代码

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

效果图

全面解析Bootstrap手风琴效果

如果大家还想深入学习,可以点击这里进行学习,再为大家附两个精彩的专题:Bootstrap学习教程 Bootstrap实战教程

以上就是对Bootstrap手风琴效果的全面解析,希望对大家的学习有所帮助。

Javascript 相关文章推荐
另一个javascript小测验(代码集合)
Jul 27 Javascript
js的2种继承方式详解
Mar 04 Javascript
js 判断浏览器使用的语言示例代码
Mar 22 Javascript
JS通过分析userAgent属性来判断浏览器的类型及版本
Mar 28 Javascript
javascript弹性运动效果简单实现方法
Jan 08 Javascript
基于javascript实现listbox左右移动
Jan 29 Javascript
基于Bootstrap重置输入框内容按钮插件
May 12 Javascript
深入理解js generator数据类型
Aug 16 Javascript
jQuery代码实现实时获取时间
Jan 29 Javascript
微信小程序仿知乎实现评论留言功能
Nov 28 Javascript
用Cordova打包Vue项目的方法步骤
Feb 02 Javascript
JS+php后台实现文件上传功能详解
Mar 02 Javascript
简单对比分析JavaScript中的apply,call与this的使用
Dec 04 #Javascript
详解JavaScript的Date对象(制作简易钟表)
Apr 07 #Javascript
浅析2种JavaScript继承方式
Dec 04 #Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
Dec 03 #Javascript
浅析jQuery Mobile的初始化事件
Dec 03 #Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
Dec 03 #Javascript
jQuery移动web开发中的页面初始化与加载事件
Dec 03 #Javascript
You might like
PHP 截取字符串专题集合
2010/08/19 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
jqPlot 基于jquery的画图插件
2011/04/26 Javascript
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
使用原生js实现页面蒙灰(mask)效果示例代码
2014/06/20 Javascript
详解JavaScript的表达式与运算符
2015/11/30 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
微信小程序http连接访问解决方案的示例
2018/11/05 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
js中的深浅拷贝问题简析
2019/05/10 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
2019/11/14 Javascript
[02:02]特效爆炸!DOTA2珍宝之瓶待你开启
2018/08/21 DOTA
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
Python中基础的socket编程实战攻略
2016/06/01 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
2018/03/05 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
Python3.6连接Oracle数据库的方法详解
2018/05/18 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
python实现飞船游戏的纵向移动
2020/04/24 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
HTML5混合开发二维码扫描以及调用本地摄像头
2017/12/27 HTML / CSS
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
Peter Millar官网:美国高档生活服饰品牌
2018/07/02 全球购物
给校长的建议书
2014/03/12 职场文书
早读课迟到检讨书
2014/09/25 职场文书
公司经营目标责任书
2015/01/29 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
Python编解码问题及文本文件处理方法详解
2021/06/20 Python
基于angular实现树形二级表格
2021/10/16 Javascript