全面解析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 相关文章推荐
图片自动更新(说明)
Oct 02 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
Apr 14 Javascript
js setTimeout 常见问题小结
Aug 13 Javascript
多种方法判断Javascript对象是否存在
Sep 22 Javascript
js时间比较示例分享(日期比较)
Mar 05 Javascript
jquery插件corner实现圆角边框的方法
Mar 09 Javascript
jQuery在页面加载时动态修改图片尺寸的方法
Mar 20 Javascript
jQuery实现简单的列表式导航菜单效果代码
Aug 31 Javascript
js实现根据身份证号自动生成出生日期
Dec 15 Javascript
JavaScript中关联原型链属性特性
Feb 13 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
Sep 30 Javascript
vue实现点击按钮下载文件功能
Oct 11 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 url 加密解密函数代码
2011/08/26 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
CodeIgniter扩展核心类实例详解
2016/01/20 PHP
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
json的前台操作和后台操作实现代码
2012/01/20 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
Javascript中setTimeOut和setInterval的定时器用法
2015/06/12 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
vue-cli中安装方法(图文详细步骤)
2018/12/12 Javascript
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
vue input标签通用指令校验的实现
2019/11/05 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
Vue实现跑马灯效果
2020/05/25 Javascript
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
python+mysql实现简单的web程序
2014/09/11 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
python3中替换python2中cmp函数的实现
2019/08/20 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
python 实现aes256加密
2020/11/27 Python
html5 Canvas画图教程(1)—画图的基本常识
2013/01/09 HTML / CSS
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
年终总结会议主持词
2014/03/17 职场文书
教师节表彰会主持词
2015/07/06 职场文书
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
Mysql忘记密码解决方法
2022/02/12 MySQL
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python