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 相关文章推荐
js加入收藏以及使用Jquery更改透明度
Jan 26 Javascript
学习javascript面向对象 理解javascript原型和原型链
Jan 04 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
Jun 17 Javascript
AngularJS ng-template寄宿方式用法分析
Nov 07 Javascript
浅析javascript中的Event事件
Dec 09 Javascript
JavaScript常用正则函数用法示例
Jan 23 Javascript
vue2.0 自定义日期时间过滤器
Jun 07 Javascript
JS中LocalStorage与SessionStorage五种循序渐进的使用方法
Jul 12 Javascript
node 利用进程通信实现Cluster共享内存
Oct 27 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
Dec 18 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
Jun 01 Javascript
使用vue.js在页面内组件监听scroll事件的方法
Sep 11 Javascript
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面向对象编程self和static的区别
2016/05/08 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
Git命令之分支详解
2021/03/02 PHP
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
2014/10/31 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
2016/08/10 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
JS实现随机抽选获奖者
2019/11/07 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
2018/08/16 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
初次部署django+gunicorn+nginx的方法步骤
2019/09/11 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
python虚拟环境模块venv使用及示例
2020/03/04 Python
让IE支持CSS3的不完全兼容方案
2014/09/19 HTML / CSS
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
澳大利亚Mocha官方网站:包、钱包、珠宝和配饰
2019/07/18 全球购物
内部类的定义、种类以及优点
2013/10/16 面试题
外语专业毕业生自我评价分享
2013/10/05 职场文书
交通事故协议书
2014/04/15 职场文书
班训口号大全
2014/06/18 职场文书
经典祝酒词大全
2015/08/12 职场文书
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏