前台tab左右箭头移动界面

前台tab左右箭头移动界面
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>Tab - Layui</title>
    <link rel="stylesheet" href="layui/css/layui.css">
    <script type="text/javascript" src="layui/layui.js"></script>
    <script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    <style>
        .layui-tab-title li {
            border-bottom: 1px solid #e6e6e6;
        }
    </style>
</head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">

    <div class="layui-body">
        <!-- 内容主体区域 -->
        <div class="layadmin-pagetabs" style="position: relative;margin: 0px;padding: 0px;">
            <div class="layui-icon layui-icon-prev" id="left_button"  style="position: absolute;left: 0;background-color: #ffffff;width:40px;height:40px;text-align: center;line-height: 40px;color: #000000;"></div>
            <div class="layui-icon  layui-icon-next" id="right_button" style="position: absolute;right: 190px;background-color: #ffffff;width:40px;height:40px;text-align: center;line-height: 40px;color: #000000;"></div>
            <div class="layui-tab layui-tab-brief" lay-unauto="" lay-filter="test1"
                 style="left: 20px;position: relative;width:80%;overflow: hidden;">
                <ul class="layui-tab-title"  style="border-bottom: none;" >
                    <li class="layui-this" lay-id="111">文章列表1</li>
                    <li lay-id="222">发送信息2</li>
                    <li lay-id="333">权限分配3</li>
                    <li lay-id="444">审核4</li>
                    <li lay-id="555">订单管理5</li>
                    <li lay-id="333">权限分配6</li>
                    <li lay-id="444">审核7</li>
                    <li lay-id="555">订单管理8</li>
                    <li lay-id="333">权限分配9</li>
                    <li lay-id="444">审核10</li>
                    <li lay-id="555">订单管理11</li>
                    <li lay-id="333">权限分配12</li>
                    <li lay-id="444">审核13</li>
                    <li lay-id="555">订单管理14</li>
                    <li lay-id="333">权限分配15</li>
                </ul>

                <div class="layui-tab-content" style="height: 100px;">
                    <div class="layui-tab-item layui-show">1</div>
                    <div class="layui-tab-item">2</div>
                    <div class="layui-tab-item">3</div>
                    <div class="layui-tab-item">4</div>
                    <div class="layui-tab-item">5</div>
                    <div class="layui-tab-item">6</div>
                    <div class="layui-tab-item">7</div>
                    <div class="layui-tab-item">8</div>
                    <div class="layui-tab-item">9</div>
                    <div class="layui-tab-item">10</div>
                    <div class="layui-tab-item">11</div>
                    <div class="layui-tab-item">12</div>
                    <div class="layui-tab-item">13</div>
                    <div class="layui-tab-item">14</div>
                    <div class="layui-tab-item">15</div>
                </div>
            </div>
        </div>
    </div>
</div>
<script>
    var oli = document.getElementsByTagName("li");
    for(let i=0; i<oli.length; i++){
            oli[i].onclick = function () {
                alert(this.innerHTML);
                testAjax()
            };
        };

    function testAjax() {

        $.ajax({

            type:'POST',

            data:{"id":6},

            contentType :'application/json',

            dataType:'json',

            url :'saveJsonUser',

            success :function(data) {
                console.log("OK")
                console.log(data)
            },
            error :function(e) {

                alert("error");

            }

        });

    }
    /*function imgFormUpload() {
        $.ajax({
            dataType: 'json',
            url: "https://www.baidu.com",
            success: function (data) {
            alert("submit success");
        }
    });
    }*/
    //JavaScript代码区域
    layui.use(['element', 'jquery'], function () {
        var element = layui.element;
        var $ = layui.jquery;
        var active = {
            tabadd: function (url, id, name) {
                element.tabAdd('test1', {
                        title: name
                        ,
                        content: '<iframe data-frameid="' + id + '" scrolling="no" frameborder="0" src="' + url + '" style="width:100%;"></iframe>' //支持传入html
                        ,
                        id: id
                    }
                );
                element.render('tab');
            },
            tab_change: function (data_id) {
                location.hash = 'test1=' + data_id;
                var layid = location.hash.replace(/^#test1=/, '');
                element.tabChange('test1', layid);
            }

        };
        //向右移动
        var less_width=0;sum_total=0;less_sum_title=0;tab_click_list=[];
        var total_list=[];   //记录菜单滚动宽度
        $('#right_button').click(function () {
            var sum_title=parseFloat($('.layui-tab-title').width());
            //temp_data存上一次宽度
            var temp_width=0;temp_data=0;one_total_list=0;
            var temp_total=$('.layui-tab-title li[lay-id]').length;
            for (var i=sum_total;i<temp_total;i++){
                tab_click_list.push($('.layui-tab-title li').eq(i).attr("lay-id"));
                temp_width = parseFloat($('.layui-tab-title li').eq(i).width())+30;
                if (less_width > sum_title+less_sum_title) {
                    less_width = less_width - temp_data;
                    less_sum_title = less_width;
                    break;
                } else {
                    //console.log('ok');
                    less_width += temp_width;
                    temp_data = temp_width;
                    sum_total=i;
                }
            }

            if (sum_total < temp_total-1) {
                //用列表记录菜单滚动所有宽度
                total_list.push(-less_width);
                console.log(total_list,'个数');
                var css = {
                    "left": -less_width,
                };
                $('.layui-tab-title').css(css);
            }

        });


        //向左移动
        var left_sum_width = 0;less_total_list=0;less_one_total=2;
        $('#left_button').click(function () {
            var sum_title=parseFloat($('.layui-tab-title').width());
            //temp_data存上一次宽度
            var temp_width=0;temp_data=0;
            var temp_total=$('.layui-tab-title li[lay-id]').length;
            less_total_list=total_list.length-less_one_total;
            ceshi = -total_list[less_total_list];
            if (less_total_list >= 0) {
                console.log(less_total_list, "less_total_list");
                var css = {
                    "left": total_list[less_total_list]
                };
                $('.layui-tab-title').css(css);
                less_one_total += 1;
            } else if (less_total_list < 0) {
                var css = {
                    "left": 0
                };
                $('.layui-tab-title').css(css);
                //清除所有已赋值的变量
                less_width=0;sum_total=0;less_sum_title=0;total_list=[];
            }
        });

        //移动函数
        function right_func(){
            var less_width=0;sum_total=0;less_sum_title=0;
            var total_list=[];   //记录菜单滚动宽度
            var sum_title=parseFloat($('.layui-tab-title').width());
            //temp_data存上一次宽度
            var temp_width=0;temp_data=0;one_total_list=0;
            var temp_total=$('.layui-tab-title li[lay-id]').length;
            for (var i=sum_total;i<temp_total;i++){
                console.log($('.layui-tab-title li').eq(i).attr("lay-id"),"lay-id");
                temp_width = parseFloat($('.layui-tab-title li').eq(i).width())+30;
                if (less_width > sum_title+less_sum_title) {
                    less_width = less_width - temp_data;
                    less_sum_title = less_width;
                    break;
                } else {
                    //console.log('ok');
                    less_width += temp_width;
                    temp_data = temp_width;
                    sum_total=i;
                }
            }

            if (sum_total < temp_total-1) {
                //用列表记录菜单滚动所有宽度
                total_list.push(-less_width);
                console.log(total_list,'个数');
                var css = {
                    "left": -less_width,
                };
                $('.layui-tab-title').css(css);
            }

        }



        //监听导航点击
        element.on('nav(test)', function (elem) {
            //console.log(elem);
            var data_click = $(this);
            var url = elem.parent('dd').children('a').attr('data-url');
            var data_id = elem.parent('dd').children('a').attr('data-id');
            var text_ch = elem.parent('dd').children('a').text();
            //只有获取到data_id才会执行,以防一级菜单点击后创建tab标签
            if (data_id) {
                //console.log('ok');
                //console.log($('.layui-tab-title li[lay-id]'));
                var isJudge = false;
                var sum_width = 0;
                $.each($('.layui-tab-title li[lay-id]'), function () {
                    //console.log($(this).width(), 'widhth');
                    sum_width += parseInt($(this).width());
                    //console.log($(this).attr("lay-id"));
                    //console.log(data_click.attr("data-id"));
                    if (($(this).attr("lay-id")) == (data_click.attr("data-id"))) {
                        isJudge = true;
                    }
                });
                //如果tab标签没有就添加并移到相应位子
                if (!isJudge) {
                    active.tabadd(url, data_id, text_ch);
                    active.tab_change(data_id);
                    var tab_click_total=$('.layui-tab-title li[lay-id]').length;
                    for (var b=0;b<tab_click_total;b++){
                        //判断是否在tab标签内,并移动
                        var temp_b=$.inArray(data_id, tab_click_list);
                        if (temp_b==-1){
                            $('#right_button').click();
                        }else if(temp_b>0){
                            tab_click_list=[];
                            break;
                        }
                    }
                    console.log(tab_click_list);
                    isJudge = false;
                }else {
                    active.tab_change(data_id);
                    tab_click_list=[];
                    var css = {
                        "left": 0
                    };
                    $('.layui-tab-title').css(css);
                    //清除所有已赋值的变量
                    less_width = 0;sum_total = 0;less_sum_title = 0;                    total_list = [];
                    var tab_click_total=$('.layui-tab-title li[lay-id]').length;
                    for (var b=0;b<tab_click_total;b++){
                        //判断是否在tab标签内,并移动
                        console.log(tab_click_list,"tab_click_list");
                        var temp_b=$.inArray(data_id, tab_click_list);
                        if (temp_b==-1){
                            $('#right_button').click();
                        }else if(temp_b>0){
                            tab_click_list=[];
                            break;
                        }
                    }
                }
            }

        });

        //监听Tab切换,以改变地址hash值
        element.on('tab(test1)', function () {
            location.hash = 'test1=' + this.getAttribute('lay-id');
            console.log(location.hash);
        });
        var layid = location.hash.replace(/^#test1=/, '');
        element.tabChange('test1', layid);
    });
</script>

</body>
</html>
后台代码实现
package com.jinyi.HelloWorld.Controller;

import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;

@RestController
public class TabController {
    @GetMapping("tab")
    public ModelAndView testTab(){
        return new ModelAndView("tab");
    }

    @PostMapping("saveJsonUser")
    public Map saveJsonUser(HttpServletRequest request, String id){
        String parameter = request.getParameter(id);
        Map result=new HashMap();

        result.put("success",id);
        System.out.println(id);
        System.out.println(parameter);
        return result;

    }
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值