当前位置: 首页 > 未分类>阅读正文

bootstrap标签页及其切换

2022.8.7 朱丰华 160 次 留下评论 2851字

标签页(Tab),通过结合一些 data 属性,您可以轻松地创建一个标签页界面。通过这个插件您可以把内容放置在标签页或者是胶囊式标签页甚至是下拉菜单标签页中。

如果您想要单独引用该插件的功能,那么您需要引用 tab.js。或者,正如 Bootstrap 插件概览 一章中所提到,您可以引用 bootstrap.js 或压缩版的 bootstrap.min.js

基本用法

您可以通过以下两种方式启用标签页:

通过 data 属性:您需要添加 data-toggle=”tab” 或 data-toggle=”pill” 到锚文本链接中。

添加 nav 和 nav-tabs 类到 ul 中,将会应用 Bootstrap 标签样式,添加 nav 和 nav-pills 类到 ul 中,将会应用 Bootstrap 胶囊式样式。

<ul class="nav nav-tabs">
    <li><a href="#identifier" data-toggle="tab">Home</a></li>
    ...
</ul>

通过 JavaScript:您可以使用 Javascript 来启用标签页,如下所示:

// 通过名称选取标签页
$('#myTab a[href="#profile"]').tab('show')

// 选取第一个标签页
$('#myTab a:first').tab('show')

// 选取最后一个标签页
$('#myTab a:last').tab('show')

// 选取第三个标签页(从 0 开始索引)
$('#myTab li:eq(2) a').tab('show')

一个完整的实例:

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>bootstrap 101</title>
    <link rel="stylesheet" href="https://www.52dixiaowo.com/tools/npm/bootstrap@3.4.1/dist/css/bootstrap.min.css">
    <script src="https://www.52dixiaowo.com/tools/npm/jquery@1.12.4/dist/jquery.min.js"></script>
    <script src="https://www.52dixiaowo.com/tools/npm/bootstrap@3.4.1/dist/js/bootstrap.min.js"></script>
</head>

<body>
    <hr>
    <ul id="myTab" class="nav nav-tabs">
        <li class="active"><a href="#home" data-toggle="tab">基础设置</a></li>
        <li><a href="#ios" data-toggle="tab">权限设置</a></li>
        <li class="dropdown">
            <a href="#" id="myTabDrop1" class="dropdown-toggle" data-toggle="dropdown">
                Java <b class="caret"></b></a>
            <ul class="dropdown-menu" role="menu" aria-labelledby="myTabDrop1">
                <li><a href="#jmeter" tabindex="-1" data-toggle="tab">jmeter</a></li>
                <li><a href="#ejb" tabindex="-1" data-toggle="tab">ejb</a></li>
            </ul>
        </li>
    </ul>
    <div class="tab-content">
        <div class="tab-pane fade in active" id="home">
            1
        </div>
        <div class="tab-pane fade" id="ios">
            2
        </div>
        <div class="tab-pane fade" id="jmeter">
            3
        </div>
        <div class="tab-pane fade" id="ejb">
            4
        </div>
    </div>

    <script>
        $(function() {
            //记录标签页切换的url
            $('a[data-toggle="tab"]').on('shown.bs.tab', function(e) {
                location.hash = e.target.hash;
            });
            //首次加载时,自动跳转到对应的标签页
            let hash = window.location.hash;
            if (hash) {
                $('a[href= "' + hash + '"]').tab('show');
            }
        });
    </script>

</body>

</html>

淡入淡出效果:

如果需要为标签页设置淡入淡出效果,请添加 .fade 到每个 .tab-pane 后面。第一个标签页必须添加 .in 类,以便淡入显示初始内容,如下面实例所示:

<div class="tab-content">
    <div class="tab-pane fade in active" id="home">...</div>
    <div class="tab-pane fade" id="svn">...</div>
    <div class="tab-pane fade" id="ios">...</div>
    <div class="tab-pane fade" id="java">...</div>
</div>

事件

下表列出了标签页(Tab)插件中要用到的事件。这些事件可在函数中当钩子使用。

事件描述实例
show.bs.tab该事件在标签页显示时触发,但是必须在新标签页被显示之前。分别使用 event.target 和 event.relatedTarget 来定位到激活的标签页和前一个激活的标签页。$(‘a[data-toggle=”tab”]’).on(‘show.bs.tab’, function (e) { e.target // 激活的标签页 e.relatedTarget // 前一个激活的标签页 })
shown.bs.tab该事件在标签页显示时触发,但是必须在某个标签页已经显示之后。分别使用 event.target 和 event.relatedTarget 来定位到激活的标签页和前一个激活的标签页。$(‘a[data-toggle=”tab”]’).on(‘shown.bs.tab’, function (e) { e.target // 激活的标签页 e.relatedTarget // 前一个激活的标签页 })

本篇完,还有疑问?留下评论吧

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注