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获取select选中的option的text示例代码
Dec 19 Javascript
js自动查找select下拉的菜单并选择(示例代码)
Feb 26 Javascript
jquery的幻灯片图片切换效果代码分享
Sep 07 Javascript
JavaScript常用函数工具集:lao-utils
Mar 01 Javascript
JS实现的简单图片切换功能示例【测试可用】
Feb 14 Javascript
详解VUE 数组更新
Dec 16 Javascript
p5.js入门教程之键盘交互
Mar 19 Javascript
WebPack配置vue多页面的技巧
May 15 Javascript
JavaScript使用math.js进行精确计算操作示例
Jun 19 Javascript
小程序tab页无法传递参数的方法
Aug 03 Javascript
jQuery zTree插件快速实现目录树
Aug 16 jQuery
js实现跟随鼠标移动的小球
Aug 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 中文和编码判断代码
2010/05/16 PHP
php设计模式 State (状态模式)
2011/06/26 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
js实现开启密码大写提示
2016/12/21 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
Angular使用操作事件指令ng-click传多个参数示例
2018/03/27 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
详解js获取video任意时间的画面截图
2019/04/17 Javascript
灵活使用console让js调试更简单的方法步骤
2019/04/23 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
[55:23]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python实现的简单发送邮件脚本分享
2014/11/07 Python
python简单分割文件的方法
2015/07/30 Python
Python实现判断字符串中包含某个字符的判断函数示例
2018/01/08 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
2018/04/21 Python
python 剪切移动文件的实现代码
2018/08/02 Python
python 内置函数汇总详解
2019/09/16 Python
高考考python编程是真的吗
2020/07/20 Python
学点简单的Django之第一个Django程序的实现
2021/02/24 Python
Canvas系列之滤镜效果
2019/02/12 HTML / CSS
文明教师事迹材料
2014/01/16 职场文书
5.1手机促销活动
2014/01/17 职场文书
授权委托书格式模板
2014/04/03 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
新员工入职感想
2015/08/07 职场文书
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技