Layui标签页的实现

先上图:(这是一个页面中同时存在的两个不同的标签页,也同时用了两个方法来写的。)

<div class="layui-tab" lay-filter="tabDemo">
                <ul class="layui-tab-title">
                    <li class="layui-this" id="tab01" style="background-color: #5FB878; color: white">数据1</li>
                    <li id="tab02">数据2</li>
                    <li id="tab03">数据3</li>
                    <li id="tab04">数据4</li>
                </ul>
                <div class="layui-tab-content" style="height: 500px">
                    <div class="layui-tab-item layui-show" id="content01">
                        <h3>tab01标签页01的内容</h3>
                    </div>
                    <div class="layui-tab-item" id="content02">
                        <h3>tab02标签页02的内容</h3>
                    </div>
                    <div class="layui-tab-item" id="content03">
                        <h3>tab03标签页03的内容</h3>
                    </div>
                    <div class="layui-tab-item" id="content04">
                        <h3>tab04标签页04的内容</h3>
                    </div>
                </div>
            </div>

重点在JS部分

这里我因为标签页的内容不多,就直接显示和隐藏内容,当然也可以在不同的标签页重新写新的.html页面,问题不大,看自己使用。

layui.use(['jquery','table', 'layer', 'element'], function () {
        let $ = layui.jquery,
            form = layui.form,
            table = layui.table,
            layer = layui.layer,
            element = layui.element


        // 初始化标签页组件
        element.init();

        // 监听标签页切换事件
        element.on('tab(tabDemo)', function(data){
            // 获取当前标签页的索引
            let index = data.index;

            // 根据索引跳转到不同的页面
            if (index === 0) {
                $('#content01').show();
                $('#content02').hide();
                $('#content03').hide();
                $('#content04').hide();

                // 添加样式到第一个标签页
                $('#tab01').css({
                    backgroundColor: '#5FB878',
                    color: 'white'
                });
                // 移除样式从其他标签页
                $('#tab02, #tab03, #tab04').css({
                    backgroundColor: '',
                    color: ''
                });

            } else if (index === 1) {
                $('#content01').hide();
                $('#content02').show();
                $('#content03').hide();
                $('#content04').hide();

                // 添加样式到第一个标签页
                $('#tab02').css({
                    backgroundColor: '#5FB878',
                    color: 'white'
                });
                // 移除样式从其他标签页
                $('#tab01, #tab03, #tab04').css({
                    backgroundColor: '',
                    color: ''
                });

            } else if (index === 2) {
                $('#content01').hide();
                $('#content02').hide();
                $('#content03').show();
                $('#content04').hide();

                // 添加样式到第一个标签页
                $('#tab03').css({
                    backgroundColor: '#5FB878',
                    color: 'white'
                });
                // 移除样式从其他标签页
                $('#tab01, #tab02, #tab04').css({
                    backgroundColor: '',
                    color: ''
                });

            } else if (index === 3){
                $('#content01').hide();
                $('#content02').hide();
                $('#content03').hide();
                $('#content04').show();

                // 添加样式到第一个标签页
                $('#tab04').css({
                    backgroundColor: '#5FB878',
                    color: 'white'
                });
                // 移除样式从其他标签页
                $('#tab01, #tab02, #tab03').css({
                    backgroundColor: '',
                    color: ''
                });

            }
        });

如果想要换成页面,写成如下即可

// 根据索引跳转到不同的页面
      if (index === 0) {
        window.location.href = 'page1.html';
      } else if (index === 1) {
        window.location.href = 'page2.html';
      } else if (index === 2) {
        window.location.href = 'page3.html';
      }

第二种是通过点击事件去处理代码大致相似,只不过没有用到layui的element组件和element.init()初始化的方法,比较简单,这里不再展示。

还可以直接用layui文档中提供的代码(提供了几种风格)可以直接用,不用写JS部分

<div class="layui-tab layui-tab-brief" lay-filter="" style="margin-left: 4px; margin-top: 3px">
                            <ul class="layui-tab-title">
                                <li class="layui-this">结果内容</li>
                                <li>平衡</li>
                                <li>冻结</li>
                            </ul>
                            <div class="layui-tab-content" style="height: 500px;">
                                <div class="layui-tab-item layui-show">
                                    <div id="myCharts" style="width: 600px; height: 350px;"></div>
                                </div>
                                <div class="layui-tab-item">内容2</div>
                                <div class="layui-tab-item">内容3</div>
                            </div>
                        </div>

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值