bootstrap手风琴制作方法详解


Posted in Javascript onJanuary 11, 2017

手风琴(Collapse)效果展示

Bootstrap 框架中 Collapse插件(折叠)其实就是我们常见的手风琴效果。点击标题,可以让其对应的内容显示或隐藏

<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>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>

手风琴?手风琴结构

手风琴最关键的部分,就是每个标题对应有一个内容,在Bootstrap框架中将这两个部分组合起来称为一个panel页板,如右边效果所示,他就有三个panel面板,将这三个面板组合在一起,就是一个面板组合 panel-group,也就是手风琴的结构。

简单点就是一个触发器和一个折叠区:

<button type="button" class="btn btn-danger" data-toggle="collapse" data-target="#demo">触发器</button>
<div id="demo" class="collapse in">折叠区</div>

手风琴?声明式触发手风琴(二)

第三步,为了把标题和内容区捆绑在一起,可以通过锚链接的方法,把标题区域和面板区连在一起:

第四步,控制面板内容区是否可视。在Bootstrap框架中,如果你想让内容区域不可视,只需要在 panel-collapse 样式上添加 collapse:

每个面板的内容区都被隐藏起来了,变成不可视,但有时候希望默认第一个面板内容是可视的,
你只需要在collapse基础上再追加 in 样式:

手风琴?声明式触发手风琴(三)

第五步,激活手风琴交互行为。要完成交互行为,需要在标题链接中自定义两个属性,一个是data-toggle,并且取值为collapse;另一个是data-target,取值为各个面板内容区的标识符,比如说ID,

注意:在这个案例中不加入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>

☑ 使用 panel 的 panel-title 做为触元素,使用panel-body的父元素作为折叠区;
 ☑ 使用一个 panel-group 来包含多个 panel,从而实现手风琴效果;
 ☑ 每个 panel 里的触发元素都要指定data-parent属性;
 ☑ data-parent 属性的值对应 panel-group样式元素的ID或者其他样式标识符;
 ☑ 触发元素需要指定 data-toggle,并且值为 collapse;
 ☑ 触发元素都要指定 data-target属性;
 ☑ data-target属性的值对应 panel-body 的父元素的ID或者其他样式标识符。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
May 06 Javascript
jQuery formValidator表单验证
Jan 07 Javascript
JavaScript截取、切割字符串的技巧
Jan 07 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
Dec 07 Javascript
jQuery中on方法使用注意事项详解
Feb 15 Javascript
Vue获取DOM元素样式和样式更改示例
Mar 07 Javascript
yarn的使用与升级Node.js的方法详解
Jun 04 Javascript
gulp解决跨域的配置文件问题
Jun 08 Javascript
JS按条件 serialize() 对应标签的使用方法
Jul 24 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
Feb 27 jQuery
浅析VUE防抖与节流
Nov 24 Vue.js
jQuery冲突问题解决方法
Jan 19 jQuery
el表达式 写入bootstrap表格数据页面的实例代码
Jan 11 #Javascript
微信小程序 本地存储及登录页面处理实例详解
Jan 11 #Javascript
js仿iphone秒表功能 计算平均数
Jan 11 #Javascript
jQuery实现限制文本框的输入长度
Jan 11 #Javascript
angularjs 实现带查找筛选功能的select下拉框实例
Jan 11 #Javascript
微信小程序 轮播图swiper详解及实例(源码下载)
Jan 11 #Javascript
Angularjs中使用layDate日期控件示例
Jan 11 #Javascript
You might like
PHP 定界符 使用技巧
2009/06/14 PHP
PHP STRING 陷阱原理说明
2010/07/24 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
EasyUI 中 MenuButton 的使用方法
2012/07/14 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
jquery 遍历数组 each 方法详解
2016/05/25 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
微信小程序页面间跳转传参方式总结
2019/06/13 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
PyCharm 设置SciView工具窗口的方法
2019/01/15 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
python 如何对logging日志封装
2020/12/02 Python
main 函数执行以前,还会执行什么代码
2013/04/17 面试题
生产副总岗位职责
2013/11/28 职场文书
小学生暑假家长评语
2014/04/17 职场文书
广播体操口号
2014/06/18 职场文书
班级文化建设标语
2014/06/23 职场文书
班组长安全工作职责
2014/07/15 职场文书
2014年语文教研组工作总结
2014/12/06 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
Vue如何实现组件间通信
2021/05/15 Vue.js
Python语言中的数据类型-序列
2022/02/24 Python
SQL Server数据库基本概念、组成、常用对象与约束
2022/03/20 SQL Server
nginx 配置指令之location使用详解
2022/05/25 Servers
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS