Bootstrap JavaScript插件:可切换标签 (tab.js)

简介: Bootstrap 框架

作者:WangMin
格言:努力做好自己喜欢的每一件事

banner.png

一个可切换的标签导航包含两部分内容,一个是标签导航,一个是内容面板。每个标签都有一个对应的内容面板,当标签发生切换时,自动切换到相应的内容面板。内容面板如下:

<div class="tab-content">
    <div class="tab-pane active" id="tab1" role="tabpanel">
        <p>第一部分</p>
    </div>
    <div class="tab-pane" id="tab2" role="tabpanel">
        <p>第二部分</p>
    </div>
    <div class="tab-pane" id="tab3" role="tabpanel">
        <p>第三部分</p>
    </div>
</div>

其次,定义标签导航。所有链接的 data-toggle 属性值必须是 "tab",href 属性值为对应内容面板的 id

<ul class="nav nav-tabs" role="tablist">
    <li class="active" role="presentation"><a href="#tab1" data-toggle="tab" role="tab">part 1</a></li>
    <li role="presentation"><a href="#tab2" data-toggle="tab" role="tab">part 2</a></li>
    <li role="presentation"><a href="#tab3" data-toggle="tab" role="tab">part 3</a></li>
</ul>

最后,为了兼容IE早期版本,使整个标签导航具有可布局性,防止布局发生环绕和错位现象,Bootstrap还将标签导航和内容面板放在一个 .tabbable 容器中。

<div class="tabbable">...</div>

可切换完整代码如下:

<div class="tabbable">
    <ul class="nav nav-tabs" role="tablist">
        <li class="active" role="presentation"><a href="#tab1" data-toggle="tab" role="tab">part 1</a></li>
        <li role="presentation"><a href="#tab2" data-toggle="tab" role="tab">part 2</a>        </li>
        <li role="presentation"><a href="#tab3" data-toggle="tab" role="tab">part 3</a>    </li>
    </ul>
    <div class="tab-content">
        <div class="tab-pane active" id="tab1" role="tabpanel">
            <p>第一部分</p>
        </div>
        <div class="tab-pane" id="tab2" role="tabpanel">
            <p>第二部分</p>
        </div>
        <div class="tab-pane" id="tab3" role="tabpanel">
            <p>第三部分</p>
        </div>
    </div>
</div>

静态效果如下(实际效果需要复制代码在浏览器中查看):
1.png

1. 通过 data 属性调用

只需在元素上指定data-toggle=“tab”或data-toggle=“pill”,就可以激活选项卡或胶囊式标签页,而不需要编写任何JavaScript代码。将.nav和.nav-tabs类添加到tabul将应用引导选项卡样式,而添加nav和nav pills类将应用pill样式。具体用法参照以上代码。

2. 通过 JavaScript 调用

通过JavaScript启用选项卡(每个选项卡需要单独激活),代码如下:

$('.tabbable a').click(function (e) {
   
   
  e.preventDefault()
  $(this).tab('show')
})

选项卡淡入淡出

要使选项卡淡入,请在每个.tab-pane窗格中添加.fade。第一个选项卡窗格还必须具有.in才能使初始内容可见。

 <div class="tab-content">
        <div class="tab-pane fade in  active" id="tab1" role="tabpanel">
            <p>第一部分</p>
        </div>
        <div class="tab-pane fade" id="tab2" role="tabpanel">
            <p>第二部分</p>
        </div>
        <div class="tab-pane fade" id="tab3" role="tabpanel">
            <p>第三部分</p>
        </div>
    </div>

方法

$().tab
激活选项卡元素和内容容器。Tab应该有一个针对DOM中容器节点的数据目标或href。在上面的示例中,选项卡是具有data-toggle=“tab”属性的\标签。

.tab('show')
选择给定选项卡并显示其关联内容。先前选定的任何其他选项卡都将取消选中,并且其关联内容将隐藏。


事件

显示新选项卡时,事件按以下顺序触发:

  1. hide.bs.tab(在当前活动选项卡上)
  2. show.bs.tab(在“待显示”选项卡上)
  3. hidden.bs.tab(在上一个活动选项卡上,与hide.bs.tab事件)
  4. shown.bs.tab(在刚刚显示的新活动选项卡上,与show.bs.tab事件

    如果没有选项卡已处于活动状态,则 hide.bs.tab 以及 hidden.bs.tab 不会触发事件。

事件类型 事件描述
show.bs.tab 此事件在选项卡显示时激发,但在显示新选项卡之前。使用event.target以及event.relatedTarget分别针对活动选项卡和上一个活动选项卡(如果可用)
shown.bs.tab 此事件在选项卡显示后在tab show上激发。使用event.target以及event.relatedTarget分别针对活动选项卡和上一个活动选项卡(如果可用)。
hide.bs.tab 此事件在要显示新选项卡时激发(因此前一个活动选项卡将被隐藏)。使用event.target以及event.relatedTarget分别针对当前的活动选项卡和即将启用的新选项卡。
hidden.bs.tab 此事件在显示新选项卡后激发(因此前一个活动选项卡被隐藏)。使用event.target以及event.relatedTarget分别针对上一个活动选项卡和新活动选项卡。
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
   
   
  e.target // newly activated tab
  e.relatedTarget // previous active tab
})

就先分享到这里!! :smile: 后续继续更新!!

目录
相关文章
|
9月前
|
资源调度 JavaScript 前端开发
Day.js极简轻易快速2kB的JavaScript库-替代Moment.js
dayjs是一个极简快速2kB的JavaScript库,可以为浏览器处理解析、验证、操作和显示日期和时间,它的设计目标是提供一个简单、快速且功能强大的日期处理工具,同时保持极小的体积(仅 2KB 左右)。
547 24
|
12月前
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
456 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
JavaScript 前端开发
JavaWeb JavaScript ③ JS的流程控制和函数
通过本文的详细介绍,您可以深入理解JavaScript的流程控制和函数的使用,进而编写出高效、可维护的代码。
265 32
|
11月前
|
JavaScript 前端开发 算法
JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)
Array.sort() 是一个功能强大的方法,通过自定义的比较函数,可以处理各种复杂的排序逻辑。无论是简单的数字排序,还是多字段、嵌套对象、分组排序等高级应用,Array.sort() 都能胜任。同时,通过性能优化技巧(如映射排序)和结合其他数组方法(如 reduce),Array.sort() 可以用来实现高效的数据处理逻辑。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
11月前
|
JavaScript 前端开发 API
纯js轻量级页面顶部Loading进度条插件
纯js轻量级页面顶部Loading进度条插件
|
11月前
|
数据采集 JavaScript 前端开发
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
用array.filter()来实现数据筛选、数据清洗和链式调用,相对于for循环更加清晰,语义化强,能显著提升代码的可读性和可维护性。博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
JavaScript 容器
带方向感知功能的js图片遮罩层插件
带方向感知功能的js图片遮罩层插件
|
资源调度 前端开发 JavaScript
Bootstrap日期选择器插件bootstrap-datepicker
Bootstrap日期选择器插件bootstrap-datepicker
1282 12
|
JavaScript 前端开发
【JavaScript】——JS基础入门常见操作(大量举例)
JS引入方式,JS基础语法,JS增删查改,JS函数,JS对象