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 相关文章推荐
用js判断浏览器是否是IE的比较好的办法
May 08 Javascript
在JavaScript中监听IME键盘输入事件
May 29 Javascript
jQuery中;function($,undefined) 前面的分号的用处
Dec 17 Javascript
AngularJS延迟加载html template
Jul 27 Javascript
JavaScript中日期函数的相关操作知识
Aug 03 Javascript
PHP抓取HTTPS内容和错误处理的方法
Sep 30 Javascript
jQuery中$.grep() 过滤函数 数组过滤
Nov 22 Javascript
利用D3.js实现最简单的柱状图示例代码
Dec 09 Javascript
微信小程序 Buffer缓冲区的详解
Jul 06 Javascript
JS跳转手机站url的若干注意事项
Oct 18 Javascript
Bootstrap实现下拉菜单多级联动
Nov 23 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
Jul 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 Google的translate API代码
2008/12/10 PHP
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
javascript 读取图片文件的大小
2009/06/25 Javascript
jquery缓动swing liner控制动画过程不同时刻的速度
2014/05/29 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
基于js中document.cookie全面解析
2017/09/14 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
Flask入门之上传文件到服务器的方法示例
2018/07/18 Python
python ---lambda匿名函数介绍
2019/03/13 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
python使用scapy模块实现ping扫描的过程详解
2021/01/21 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
Madewell澳大利亚官方网站:美国休闲服饰品牌
2019/07/18 全球购物
车祸赔偿收入证明
2014/01/09 职场文书
院领导写的就业推荐信
2014/03/09 职场文书
2014两会学习心得:时代的发展
2014/03/17 职场文书
2014年保育员工作总结
2014/12/02 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python
如何判断pytorch是否支持GPU加速
2021/06/01 Python
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android