全面解析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学习笔记(七)利用javascript来创建和存储cookie
Apr 08 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
Dec 04 Javascript
Jquery响应回车键直接提交表单操作代码
Jul 25 Javascript
JavaScript Promise启示录
Aug 12 Javascript
jQuery动态背景图片效果实现方法
Jul 03 Javascript
JavaScript导航脚本判断当前导航
Jul 12 Javascript
关于foreach循环中遇到的问题小结
May 08 Javascript
微信小程序实现锚点定位楼层跳跃的实例
May 18 Javascript
前端MVVM框架解析之双向绑定
Jan 24 Javascript
使用JS实现导航切换时高亮显示的示例讲解
Aug 22 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
Oct 09 Javascript
JavaScript实现电灯开关小案例
Mar 30 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/08 PHP
解决laravel 表单提交-POST 异常的问题
2019/10/15 PHP
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
js如何获取file控件的完整路径具体实现代码
2013/05/15 Javascript
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
浅谈被jQuery抛弃的函数及替代函数
2015/05/03 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
深入浅析JavaScript中的3DES
2016/08/24 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
js实现抽奖效果
2017/03/27 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
vue 实现强制类型转换 数字类型转为字符串
2019/11/07 Javascript
vue使用video插件vue-video-player的示例
2020/10/03 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
Python os模块介绍
2014/11/30 Python
简介Django中内置的一些中间件
2015/07/24 Python
浅谈Python处理PDF的方法
2017/11/10 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
解决csv.writer写入文件有多余的空行问题
2018/07/06 Python
详解Python3之数据指纹MD5校验与对比
2019/06/11 Python
Python进度条的制作代码实例
2019/08/31 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
护理专科自荐书范文
2014/02/18 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
2014年小学教导处工作总结
2014/12/19 职场文书
幼儿园小班教学反思
2016/03/03 职场文书
goland 清除所有的默认设置操作
2021/04/28 Golang