手写后台管理框架模板(一)

引言:前些时间小刘总想自己写个属于自己的后台管理模板,不必再去网上找框架结合。现在小刘抽空写了个简易的模板版本1.0接下来有时间再进行优化。

后台管理框架主页一般有头部用户以及系统信息,左边大多是菜单栏,右边为内容展现区。右边又可能分为上下两部分,一部分为标签页选项卡,一部分为内容区域;

主要思路如下:

1.点击左边菜单右边内容显示,同时内容上方出现相应的标签选项卡

2.点击选项卡回到相应的内容页面

3.点击删除显示最后的内容区域

4.左边菜单和头部标签页要一一对应,同时视觉上active同步

以上便是一般后台管理框架模板的形式,也是该模板实现的难点;

小刘简易实现效果如下:

以上便是小刘实现的效果了,下面贴一些核心代码:

难点:还是如何找对应的菜单,标签以及内容页面;如果可以找到还是不难理解的;小刘采用的事iframe形成子页面;获取a链接的data-href 和data-index 进行相应的操作;

点击选项卡生成相应的标签页内容

	/**
		 * 左部菜单点击事件
		 */
		$(".liu_first_munu").siblings().find("a").click(function () {
			$(this).parent().parent().siblings().find("a").removeClass("liu_nav_active")
			$(this).addClass("liu_nav_active");
			$(this).parent().siblings().children().removeClass("liu_nav_active")
			let text = $(this).text();
			let href = $(this).attr("data-href");
			let index = $(this).attr("data-index");
			var n = '<iframe   name="iframe_' + index + '" width="100%" height="580px" src="' + href + '"   data-index="' +
				index + '"></iframe>';
			var a = '<a href="javascript:;" class="liu_nav_active"  data-href="' + href + '"    data-index="' + index + '">' +
				text +
				"<i class='glyphicon glyphicon-remove liu_remove' data-href=" + href + "    data-index=" + index + "></i>"
			'</a>';
			let im_flag = true;
			$(".liu_iframes iframe").each(function (index_iframe, element) {
				if ($(element).attr("data-index") == index) {
					$(element).siblings().hide();
					$(element).show();
					im_flag = false;
				}
			});
			if (im_flag) {
				if ($(".liu_nav_top_tab a").length >= 6) {
					alert("最多可加载6个选项卡!请先关闭其他选项卡!")
					return false;
				}
				$(".liu_iframes").children().hide();
				$(".liu_iframes").append(n);
			}
			let flag = true;
			$(".liu_nav_top_tab a").each(function (index_tab, element) {
				if ($(element).attr("data-index") == index) {
					$(element).addClass("liu_nav_active");
					$(element).siblings().removeClass("liu_nav_active");
					flag = false;
				}
			})

			if (flag) {
				$(".liu_nav_top_tab a").removeClass("liu_nav_active");
				$(".liu_nav_top_tab").append(a)
			}
		});

 点击选项卡进入相应的标签页

	/**
		 * 头部选项卡点击事件
		 */
		$(".liu_nav_top_tab").on("click", "a", function () {

			$(this).addClass("liu_nav_active");
			$(this).siblings().removeClass("liu_nav_active")
			let text = $(this).text();
			let href = $(this).attr("data-href");
			let index = $(this).attr("data-index");
			$(".liu_iframes iframe").each(function (index_iframe, element) {
				if ($(element).attr("data-index") == index) {
					$(element).siblings().hide();
					$(element).show();
				}
			});
			$(".liu_nav_left li a").each(function (index_tab, element) {
				if ($(element).attr("data-index") == index) {
					$(this).addClass("liu_nav_active");
					$(this).parent().siblings().children().removeClass("liu_nav_active")
					$(this).parent().parent().siblings().find("a").removeClass("liu_nav_active")
				}
			})
		});

点击删除删去相应的标签页

/*
         * 头部删除选项卡
		*/
		$(".liu_nav_top_tab").on("click", "i", function (event) {
			let index = $(this).attr("data-index");
			$(".liu_iframes iframe").each(function (index_iframe, element) {
				if ($(element).attr("data-index") == index) {

					$(element).siblings().last().show();
					$(element).remove();
				}
			});
			$(this).parent().remove();
			event.stopPropagation();
			var ifram = $(".liu_iframes iframe")[$(".liu_iframes iframe").length - 1];
			var ac_index = $(ifram).attr("data-index");
			$(".liu_nav_left li a").each(function (index_tab, element) {
				if ($(element).attr("data-index") == index) {
					$(this).removeClass("liu_nav_active");
				}
				if ($(element).attr("data-index") == ac_index) {
					$(this).addClass("liu_nav_active");
				}
			})
		});

代码多有冗余,以后有时间再进行优化;

如有不解,请加java爱好群大家交流:852665736;群里都是热心好客的小伙伴,大家一同进步。

无偿免费分享源码以及技术和面试文档,更多优秀精致的源码技术栈分享请关注微信公众号:gh_817962068649 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值