全面解析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 相关文章推荐
图片动画横条广告带上下滚动的JS代码
Oct 25 Javascript
js加载读取内容及显示与隐藏div示例
Feb 13 Javascript
JavaScript模拟实现键盘打字效果
Jun 29 Javascript
再次谈论Javascript中的this
Jun 23 Javascript
jQuery轮播图效果精简版完整示例
Sep 04 Javascript
js实现复选框的全选和取消全选效果
Jan 03 Javascript
Javascript Event(事件)的传播与冒泡
Jan 23 Javascript
axios post提交formdata的实例
Mar 16 Javascript
JS代码实现电脑配置检测功能
Mar 21 Javascript
antd组件Upload实现自己上传的实现示例
Dec 18 Javascript
ES6 Proxy实现Vue的变化检测问题
Jun 11 Javascript
详解Vue 的异常处理机制
Nov 30 Vue.js
简单对比分析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
一个好用的分页函数
2006/11/16 PHP
php heredoc和phpwind的模板技术使用方法小结
2008/03/28 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
2013/09/26 PHP
php获取301跳转URL简单实例
2013/12/16 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
详解PHP中的mb_detect_encoding函数使用方法
2015/08/18 PHP
php二维码生成
2015/10/19 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
PHP中的函数声明与使用详解
2017/05/27 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
2019/12/13 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
jquery里的each使用方法详解
2010/12/22 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
Javascript快速实现浏览器系统通知
2017/08/26 Javascript
JS实现非首屏图片延迟加载的示例
2018/01/06 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
vue+element tabs选项卡分页效果
2020/06/29 Javascript
[02:16]DOTA2超级联赛专访Burning 逆袭需要抓住机会
2013/06/24 DOTA
Python实现的检测网站挂马程序
2014/11/30 Python
python 系统调用的实例详解
2017/07/11 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
Python实现的json文件读取及中文乱码显示问题解决方法
2018/08/06 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
HTML5中的强制下载属性download使用实例解析
2016/05/12 HTML / CSS
美国中西部家用医疗设备商店:Med Mart(轮椅、踏板车、升降机等)
2019/04/26 全球购物
科颜氏香港官方网店:Kiehl’s香港
2021/03/07 全球购物
见习报告格式要求
2014/11/04 职场文书
2014年圣诞节寄语
2014/12/08 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python