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 相关文章推荐
javascript 写类方式之五
Jul 05 Javascript
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
Apr 06 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
Sep 28 Javascript
常见JS验证脚本汇总
Dec 01 Javascript
jQuery子元素过滤选择器用法示例
Sep 09 Javascript
从零学习node.js之详解异步控制工具async(八)
Feb 27 Javascript
关于JS与jQuery中的文档加载问题
Aug 22 jQuery
详解webpack+express多页站点开发
Dec 22 Javascript
vue-cli构建vue项目的步骤详解
Jan 27 Javascript
vue路由跳转传参数的方法
May 06 Javascript
公众号SVG动画交互实战代码
May 31 Javascript
正则表达式基础与常用验证表达式
Jun 16 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中jpgraph类库的使用介绍
2013/08/08 PHP
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
jquery选择器原理介绍($()使用方法)
2014/03/25 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
2015/12/04 Javascript
easyui validatebox验证
2016/04/29 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
postman+json+springmvc测试批量添加实例
2018/03/31 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
python判断windows隐藏文件的方法
2014/03/21 Python
利用python批量检查网站的可用性
2016/09/09 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
90后毕业生的求职信范文
2013/09/21 职场文书
高中三年学习生活的自我评价
2013/10/10 职场文书
《口技》教学反思
2014/02/21 职场文书
副总经理岗位职责
2014/03/16 职场文书
施工安全生产承诺书
2014/05/23 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
我们的节日中秋节活动总结
2015/03/23 职场文书
经销商会议开幕词
2016/03/04 职场文书