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 相关文章推荐
ExtJS Store的数据访问与更新问题
Apr 28 Javascript
jquery 简单应用示例总结
Aug 09 Javascript
javascript获取web应用根目录的方法
Feb 12 Javascript
jquery单行文字向上滚动效果示例
Mar 06 Javascript
浅谈javascript属性onresize
Apr 20 Javascript
javascript处理a标签超链接默认事件的方法
Jun 29 Javascript
javascript闭包(Closure)用法实例简析
Nov 30 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
May 16 Javascript
轻松掌握JavaScript状态模式
Sep 07 Javascript
ajax级联菜单实现方法实例分析
Nov 28 Javascript
Javascript获取某个月的天数
May 30 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
Sep 26 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输出多个元素的排列或组合的方法
2017/03/14 PHP
PHP的反射机制实例详解
2017/03/29 PHP
javascript中in运算符用法分析
2015/04/28 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
2015/06/05 Javascript
基于jquery实现放大镜效果
2015/08/17 Javascript
jquery使用ul模拟select实现表单美化的方法
2015/08/18 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
Vue Ajax跨域请求实例详解
2017/06/20 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Cython 三分钟入门教程
2009/09/17 Python
Python计算三维矢量幅度的方法
2015/06/15 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
Python从单元素字典中获取key和value的实例
2018/12/31 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
python中bytes和str类型的区别
2019/10/21 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
PyTorch的torch.cat用法
2020/06/28 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
Html5之title吸顶功能
2018/06/04 HTML / CSS
项目经理任命书范本
2014/06/05 职场文书
机关党员公开承诺书
2014/08/30 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技