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 相关文章推荐
jquery提取元素里的纯文本不包含span等里的内容
Sep 30 Javascript
jquery统计复选框选中示例
Nov 05 Javascript
innerText 使用示例
Jan 23 Javascript
基于JS实现简单的样式切换效果代码
Sep 04 Javascript
详解微信小程序 wx.uploadFile 的编码坑
Jan 23 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
Mar 09 Javascript
Bootstrap缩略图的创建方法
Mar 22 Javascript
jquery图片放大镜效果
Jun 23 jQuery
js 获取json数组里面数组的长度实例
Oct 31 Javascript
Vue.js实现开发购物车功能的方法详解
Feb 22 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
Apr 28 Javascript
前端vue如何使用高德地图
Nov 05 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开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
2013/04/23 Javascript
原生javascript图片自动或手动切换示例附演示源码
2013/09/04 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
JavaScript常用标签和方法总结
2015/09/01 Javascript
JavaScript知识点总结(四)之逻辑OR运算符详解
2016/05/31 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
django框架模型层功能、组成与用法分析
2019/07/30 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
python打包多类型文件的操作方法
2020/09/21 Python
Python中常用的os操作汇总
2020/11/05 Python
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
html5是什么_动力节点Java学院整理
2017/07/07 HTML / CSS
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
元旦联欢会主持词
2014/03/26 职场文书
企业法人授权委托书
2014/09/25 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
医院见习报告范文
2014/11/03 职场文书
优秀团员自我评价
2015/03/10 职场文书
交通事故责任认定书
2015/08/06 职场文书
感恩教育主题班会
2015/08/12 职场文书
MySQL修炼之联结与集合浅析
2021/10/05 MySQL
Android基于Fresco实现圆角和圆形图片
2022/04/01 Java/Android
virtualenv隔离Python环境的问题解析
2022/06/21 Python
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers