求个后台管理系统 多标签切换(类似于tab切换页面)案例

现在在做一个后台管理系统,技术选型是传统jquery,我想做一个多标签切换的功能,我感觉这个功能很实用、用户体验也不错,由于我自己现在也没什么好的思路,在这里想问一下有做过这样功能的吗?或者提供一个思路也可以。万分感谢!

下图是我想实现的样子 (PS:这是我找的截图)。

图片描述

阅读 10.7k
5 个回答

网上很多ui框架,你可以找一下

比如 h-ui , H+

框架很多,能直接拿就没必要动手写重复代码

简单的一个tab切换demo:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        #tabs > li.active{
            text-decoration: underline;
        }
        #tabs > li{
            list-style: none;
            display: inline-block;
            float: left;
            padding: 5px 10px;
        }
        #tabs > li:hover{
            text-decoration: underline;
            cursor: pointer;
        }
        #tabContent{
            clear: left;
        }
        #tabContent > div{
            display: none;
            border: 1px solid gray;
            width: 300px;
            height: 100px;
        }
        #tabContent > div.active{
            display: block;
        }
    </style>
</head>
<body>


<ul id="tabs">
    <li role="tab1Content" class="active">tab1</li>
    <li role="tab2Content">tab2</li>
    <li role="tab3Content">tab3</li>
    <li role="tab4Content">tab4</li>
</ul>

<div id="tabContent">
    <div class="active" id="tab1Content">tab1 text</div>
    <div id="tab2Content">tab2 text</div>
    <div id="tab3Content">tab3 text</div>
    <div id="tab4Content">tab4 text</div>
</div>


<script src="jquery.js"></script>
<script>

    $(function(){

        $("#tabs > li").on('click', function(){
            $(this).parent().find("li").removeClass("active");
            $(this).addClass("active");
            var role = $(this).attr("role");
            $("#tabContent > div").hide();
            $("#tabContent > div#" + role).show();
        });
        
    })

</script>

</body>
</html>
  1. 左边菜单点击跳转和顶部tabs跳转点击事件都是跳到同样的路由
  2. 顶部tabs生成由你点击左部菜单生成。
    好的,现在开始重点了。

生成tabs

var tabs=[];
$('左边菜单').on('click',function(){
  //获取点击菜单的名字及路由.这种数据可以存放在dom上 <li data-name='菜单名字' data-path='path'></li>
  var tab ={
   name:'菜单1',
   path:'/path1'
  }
  var hasTab = tabs.findIndex(t => t.name === tab.name)
  if(hasTab === -1){
   this.tabs.push(tab)
  }
  careaTabs(tabs)
})

tabs点击事件

//动态生成的dom事件需要代理到已经存在的dom上
$(document).on('click','.liClass',function(){
   ///
 })

好了,大概就是这样,纯手打

bootstrap ace框架适合你

lay系列案例中二次开发的后台框架,很多

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题