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 学习笔记(六)
Dec 31 Javascript
javascript使用eval或者new Function进行语法检查
Oct 16 Javascript
cument.execCommand()用法深入理解
Dec 04 Javascript
JavaScript异步编程:异步数据收集的具体方法
Aug 19 Javascript
浅谈Javascript的静态属性和原型属性
May 07 Javascript
在Javascript中处理数组之toSource()方法的使用
Jun 09 Javascript
Ajax清除浏览器js、css、图片缓存的方法
Aug 06 Javascript
jQuery实现的分子运动小球碰撞效果
Jan 27 Javascript
JS简单获取当前年月日星期的方法示例
Feb 07 Javascript
详解如何使用webpack+es6开发angular1.x
Aug 16 Javascript
Vue.js2.0中的变化小结
Oct 24 Javascript
详解SPA中前端路由基本原理与实现方式
Sep 12 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中使用DOM类读取XML文件的实现代码
2011/12/14 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
2020/07/10 PHP
表单内同名元素的控制
2006/11/22 Javascript
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
node.js中的fs.chmodSync方法使用说明
2014/12/18 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
js实现自动轮换选项卡
2017/01/13 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
关于javascript sort()排序你可能忽略的一点理解
2017/07/18 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
vue项目接口域名动态获取操作
2020/08/13 Javascript
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
Python Tkinter简单布局实例教程
2014/09/03 Python
深入讲解Java编程中类的生命周期
2016/02/05 Python
Python使用defaultdict读取文件各列的方法
2017/05/11 Python
Python代码实现http/https代理服务器的脚本
2019/08/12 Python
python实现的分层随机抽样案例
2020/02/25 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
建筑工程管理专业自荐信范文
2013/12/28 职场文书
小学毕业家长寄语
2014/01/19 职场文书
师范生求职信
2014/06/14 职场文书
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server