• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 详解Bootstrap中的手风琴效果

详解Bootstrap中的手风琴效果

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了Bootstrap,手风琴效果等相关知识,希望对您有所帮助

本篇文章给大家详细介绍一下Bootstrap中的手风琴效果。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。


详解Bootstrap中的手风琴效果


Bootstrap 框架中 Collapse插件(折叠)其实就是我们常见的手风琴效果。当单击一个触发元素时,在另外一个可折叠区域进行显示或隐藏,再次单击时可以反转显示状态。

经典的场景是多个折叠区域的手风琴风格以及单一title/content的风格。

结构

手风琴最关键的部分,就是每个标题对应有一个内容,在Bootstrap框架中将这两个部分组合起来称为一个panel面板,如下边效果所示,有三个panel面板,将这三个面板组合在一起,就是一个面板组合 panel-group,也就是手风琴的结构


详解Bootstrap中的手风琴效果


简单点就是一个触发器和一个折叠区

<button type="button" class="btn btn-danger" data-toggle="collapse" data-target="#demo">触发器</button><div id="demo" class="collapse in">折叠区</div>
<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>


详解Bootstrap中的手风琴效果

声明式触发

触发手风琴可以通过自定义的 data-toggle 属性来触发。其中data-toggle值设置为 collapse,data-target="#折叠区标识符"。接下来我们来看一个简单的示例

第一步:设计一个面板组合,里面有三个折叠区

<div class="panel-group" id="myAccordion">    <div class="panel panel-accordion panel-default"></div>    <div class="panel panel-accordion panel-default"></div>    <div class="panel panel-accordion panel-default"></div></div>

第二步:给面板添加内容,每个面板包括两个部分,第一个是面板标题 panel-heading,并且在这里面添加标题 panel-title。第二部分是面板内容,也就是折叠区,使用 panel-collapse 样式

<div class="panel panel-accordion panel-default">    <div class="panel-heading">        <h4 class="panel-title">标题一</h4>    </div>    <div class="panel-collapse">        <div class="panel-body">折叠区内容...</div>    </div></div>

第三步:为了把标题和内容区捆绑在一起,可以通过锚链接的方法,把标题区域和面板区连在一起

<div class="panel-group" id="myAccordion">    <div class="panel panel-accordion panel-default">        <div class="panel-heading">            <h4 class="panel-title"><a href="#panel1">标题一</a></h4>        </div>        <div class="panel-collapse" id="panel1">            <div class="panel-body">折叠区内容...</div>        </div>    </div>    <div class="panel panel-accordion panel-default">        <div class="panel-heading">            <h4 class="panel-title"><a href="#panel2">标题二</a></h4>        </div>        <div class="panel-collapse" id="panel2">            <div class="panel-body">折叠区内容...</div>        </div>    </div>    ......</div>

第四步:控制面板内容区是否可视。在Bootstrap框架中,如果想让内容区域不可见,只需要在 panel-collapse 样式上添加 collapse;如果想让内容区域默认可见,则需要添加样式collapse和in

<div class="panel panel-accordion panel-default">    <div class="panel-heading">        <h4 class="panel-title"><a href="#panel1">标题一</a></h4>    </div>    <div class="panel-collapse collapse" id="panel1">        <div class="panel-body">折叠区内容...</div>    </div></div>

第五步:激活手风琴交互行为。要完成交互行为,需要在标题链接中自定义两个属性,一个是data-toggle,并且取值为collapse;另一个是data-target,取值为各个面板内容区的标识符,比如说ID,在这个例子分别是#panel1、#panel2和#panel3:

[注意]在这个案例中不加入data-target="#panel1"也可以,因为前面已经有了href="#panel1",但如里是button按钮作为触发器就必须使用data-target="#panel1"语句

<div class="panel panel-accordion panel-default">    <div class="panel-heading">        <h4 class="panel-title"><a href="#panel1" data-toggle="collapse" data-target="#panel1">标题一</a></h4>    </div>    <div class="panel-collapse collapse in" id="panel1">        <div class="panel-body">折叠区内容...</div>    </div></div>

第六步:定义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>…

通过以上6步,可以总结出以下要点

使用 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或者其他样式标识符;如果是a元素,可以指定href属性替代

<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="#panel1">标题一</a></h4>        </div>        <div id="panel1" 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="#panel2">标题二</a></h4>        </div>        <div id="panel2" 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="#panel3">标题三</a></h4>        </div>        <div id="panel3" class="panel-collapse collapse">            <div class="panel-body">折叠区内容三</div>        </div>    </div></div>


详解Bootstrap中的手风琴效果


JS触发

【关键字】

$(element).collapse('show');//显示折叠区域$(element).collapse('hide');//隐藏折叠区域$(element).collapse('toggle');//反转折叠区域
<button type="button" class="btn btn-default" id="btn1">显示折叠区域</button><button type="button" class="btn btn-default" id="btn2">隐藏折叠区域</button><button type="button" class="btn btn-default" id="btn3">反转折叠区域</button> <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="#panel1">标题一</a></h4>        </div>        <div id="panel1" 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="#panel2">标题二</a></h4>        </div>        <div id="panel2" 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="#panel3">标题三</a></h4>        </div>        <div id="panel3" class="panel-collapse collapse">            <div class="panel-body">折叠区内容三</div>        </div>    </div></div><script>$(function(){    $('#btn1').click(function(){        $('.collapse').collapse('show');    })    $('#btn2').click(function(){        $('.collapse').collapse('hide');    })    $('#btn3').click(function(){        $('.collapse').collapse('toggle');    })})</script>


详解Bootstrap中的手风琴效果


【事件】

该插件支持4种类型的事件订阅

show.bs.collapse        show方法调用之后立即触发该事件shown.bs.collapse      此事件在collapse已经显示出来(并且同时在 CSS 过渡效果完成)之后被触发hide.bs.collapse        hide方法调用之后立即触发该事件。hidden.bs.collapse     此事件在collapse被隐藏(并且同时在 CSS 过渡效果完成)之后被触发
<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" data-html="标题一" href="#panel1">标题一</a></h4>        </div>        <div id="panel1" 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" data-html="标题二" href="#panel2">标题二</a></h4>        </div>        <div id="panel2" 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" data-html="标题三" href="#panel3">标题三</a></h4>        </div>        <div id="panel3" class="panel-collapse collapse">            <div class="panel-body">折叠区内容三</div>        </div>    </div></div><script>$(function(){    $("#accordion").on("show.bs.collapse",function(e){        var $element = $(e.target).siblings().first().find('a');        $element.html($element.data('html') + '[折叠区已打开]');    }).on("hide.bs.collapse",function(e){        var $element = $(e.target).siblings().first().find('a');        $element.html($element.data('html') + '[折叠区已关闭]');    }) });    </script>


详解Bootstrap中的手风琴效果


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Bootstrap中怎么实现加载效果?读取图标(Spinners)组件
  • Bootstrap-table表头固定导致错位怎么办?怎么彻底解决?
  • 聊聊Bootstrap中的导航条
  • 使用bootstrap怎么实现分页
  • 如何安装和使用BootstrapVue,构建项目界面
  • 浅谈Bootstrap中的自适应屏幕
  • 聊聊Bootstrap5中的断点与容器
  • 浅谈bootstrapTable+jstree插件对树列表条件和查询条件的处理
  • 聊聊Bootstrap4中的网格系统
  • 分享Laravel整合Bootstrap4的完整方案

相关文章

  • 2022-04-29教你快速修改WordPress中已有的头像
  • 2022-04-29WordPress给新文章增加new标志方法总汇
  • 2022-04-29Photoshop设计游戏简洁风格的标志教程
  • 2022-04-29MacOS下PHP7.1升级到PHP7.4.15的方法
  • 2022-04-29Linux怎么安装ffmpeg-php扩展
  • 2022-04-29基于开发中使用UEditor编辑器的注意事项详解
  • 2022-04-29详解ThinkPHP5实现极验滑动验证码geetest功能
  • 2022-04-29CSS3怎么实现动画结束不消失效果
  • 2022-04-29SEO的基础原则
  • 2022-04-29实例详解Ajax+php数据交互并且局部刷新页面

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • IllustratorUI设计教程:解析多重填充与多重描边
    • 浅析Angular+rxjs怎么实现拖拽功能?
    • PHP如何将数组下标去掉
    • MySQL中key 、primary key 、unique key 与index区别详解
    • 如何辨别网站是合法的链接来源还是链接工厂
    • thinkphp5.1的model模型自动更新update_time字段实例讲解
    • 改用Server酱Turbo版推送WordPress评论
    • 分享一个CSS和JS合并的WordPress插件
    • 织梦熊掌号api自动提交代码
    • Photoshop调出美女照片梦幻蓝色调教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有