全面解析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 相关文章推荐
event对象的方法 兼容多浏览器
Jun 27 Javascript
js 获取子节点函数 (兼容FF与IE)
Apr 18 Javascript
滚动图片效果 jquery实现回旋滚动效果
Jan 08 Javascript
javascript在IE下trim函数无法使用的解决方法
Sep 12 Javascript
JS判断是否360安全浏览器极速内核的方法
Jan 29 Javascript
js实现字符串和数组之间相互转换操作
Jan 12 Javascript
微信小程序 数据绑定详解及实例
Oct 25 Javascript
Vue2学习笔记之请求数据交互vue-resource
Feb 23 Javascript
angular 基于ng-messages的表单验证实例
May 04 Javascript
JavaScript中附件预览功能实现详解(推荐)
Aug 15 Javascript
微信小程序自定义tab实现多层tab嵌套功能
Jun 15 Javascript
微信小程序实现分页加载效果
Nov 19 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新手NOTICE错误常见解决方法
2011/12/07 PHP
PHP微信开发之二维码生成类
2015/06/26 PHP
PHP获取页面执行时间的方法(推荐)
2016/12/10 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
2017/06/13 PHP
laradock环境docker-compose操作详解
2019/07/29 PHP
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
jQuery选择器_动力节点Java学院整理
2017/07/05 jQuery
Webpack中loader打包各种文件的方法实例
2019/09/03 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
JavaScript实现滑动门效果
2020/01/18 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
详解JavaScript作用域 闭包
2020/07/29 Javascript
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
小结Python用fork来创建子进程注意事项
2014/07/03 Python
python获取当前日期和时间的方法
2015/04/30 Python
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
django自带调试服务器的使用详解
2019/08/29 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
商务日语专业的自荐信
2014/05/23 职场文书
岗位说明书标准范本
2014/07/30 职场文书
2014年食堂工作总结
2014/11/20 职场文书
未婚证明范本
2015/06/15 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
SQL Server Agent 服务无法启动
2022/04/20 SQL Server
win11自动弹出虚拟键盘怎么关闭? Win11关闭虚拟键盘的技巧
2023/01/09 数码科技