全面解析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 相关文章推荐
ext combox 下拉框不出现自动提示,自动选中的解决方法
Feb 24 Javascript
Javascript基础知识(三)BOM,DOM总结
Sep 29 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
Feb 21 Javascript
原生JS:Date对象全面解析
Sep 06 Javascript
js倒计时显示实例
Dec 11 Javascript
Bootstrap3多级下拉菜单
Feb 24 Javascript
React Native AsyncStorage本地存储工具类
Oct 24 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
Aug 09 jQuery
vue实现点击选中,其他的不选中方法
Sep 05 Javascript
Bootstrap-table自定义可编辑每页显示记录数
Sep 07 Javascript
详解JavaScript自定义函数
Jul 29 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
MYSQL数据库初学者使用指南
2006/11/16 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
PHP编程计算文件或数组中单词出现频率的方法
2017/05/22 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
php如何获取Http请求
2020/04/30 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
JavaScript 获取事件对象的注意点
2009/07/29 Javascript
JQuery datepicker 使用方法
2011/05/20 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
2014/09/03 Javascript
Javascript中Array.prototype.map()详解
2014/10/22 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
微信小程序入口场景的问题集合与相关解决方法
2019/06/26 Javascript
JavaScript中break、continue和return的用法区别实例分析
2020/03/02 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
通过实例解析vuejs如何实现调试代码
2020/07/16 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
Python安装第三方库的3种方法
2015/06/21 Python
Python中list列表的一些进阶使用方法介绍
2015/08/15 Python
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
django的settings中设置中文支持的实现
2019/04/28 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
Python代码需要缩进吗
2020/07/01 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
Python对excel的基本操作方法
2021/02/18 Python
高中军训第一天感言
2014/03/06 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
小学学校评估方案
2014/06/08 职场文书
自我检讨报告
2015/01/28 职场文书
七年级作文之英语老师
2019/10/28 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android