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 相关文章推荐
文字幻灯片
Jun 26 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
Apr 02 Javascript
JS小游戏之仙剑翻牌源码详解
Sep 25 Javascript
推荐25个超炫的jQuery网格插件
Nov 28 Javascript
JavaScript中的call方法和apply方法使用对比
Aug 12 Javascript
学习JavaScript设计模式之享元模式
Jan 18 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
Aug 21 Javascript
基于Vuejs和Element的注册插件的编写方法
Jul 03 Javascript
js中call()和apply()改变指针问题的讲解
Jan 17 Javascript
详解javascript 变量提升(Hoisting)
Mar 12 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
Jul 13 Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
Mar 10 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 上传文件大小限制
2009/07/05 PHP
PHP日期处理函数 整型日期格式
2011/01/12 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
js实现界面向原生界面发消息并跳转功能
2016/11/22 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
微信小程序组件生命周期的踩坑记录
2021/03/03 Javascript
python重试装饰器示例
2014/02/11 Python
python实现批量修改文件名代码
2017/09/10 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
python查看列的唯一值方法
2018/07/17 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
Django CBV类的用法详解
2019/07/26 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
Python编程中类与类的关系详解
2019/08/08 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
员工自我鉴定范文
2013/10/06 职场文书
大学生毕业自我鉴定范文
2013/11/03 职场文书
我的网上商城创业计划书
2013/12/26 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
大学毕业典礼致辞
2015/07/29 职场文书
2015年教师国培感言
2015/08/01 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python