jquery模板制作左侧导航组件
/**
* Created by bmk on 16-4-25.
*
* 用法:在自己的js里面把左侧导航的相关图标和对应的列表项名称如下编写:
* 版本更新日至按需添加
* 在js中的RNA.run(//开始加载页面数据和样式)中调用:
* 用法:在自己的js里面把左侧导航的相关图标和对应的列表项名称如下编写:
* 版本更新日至按需添加
* 在js中的RNA.run(//开始加载页面数据和样式)中调用:
* var navData = {
url: '/static/css/img/Apps-img/ioc_GEODge.png',
anayname: 'GEO数字基因表达谱分析平台',
report:{reportId:'menu0',icon:'fa-map',itm:'结题报告'},
lis: [{icon: 'fa-joomla', itm: '基本分析', id: 'menu2'},
{
icon: 'fa-anchor',//此处为折叠项
itm: '个性化一',
// id: 'menu3',
arrow:"fa arrow",
collapses:[{icon: 'fa-vine', itm: '表达量挖掘', id: 'menu3'}]
},
{icon: 'fa-vine', itm: '表达量挖掘', id: 'menu4'},
{icon: 'fa-stumbleupon',//此处为折叠项
itm: '个性化二',
// id: 'menu5',
arrow:"fa arrow",
collapses:[{icon: 'fa-vine', itm: '表达量挖掘', id: 'menu5'},{icon: 'fa-vine', itm: '表达量挖掘', id: 'menu5'}]
},
{icon: 'fa-mortar-board', itm: '新手向导', class: 'click new-guid', id: 'menu1'}] };
* navCommon.init().run(navData,左侧导航nav的id名,_isBlank != null ? _isBlank: true);
* 在$(document).ready(function (){}的末尾调用时:
* 将 _isBlank != null ? _isBlank: true 改为 isBlank != null ? false: true;
*
* navCommon.init().run(navData,左侧导航nav的id名,_isBlank != null ? _isBlank: true);
* 在$(document).ready(function (){}的末尾调用时:
* 将 _isBlank != null ? _isBlank: true 改为 isBlank != null ? false: true;
*
*
*/
(function (window, $) {
var navCommon = window.navCommon = window.navCommon || {},
proxy = function (func, thisObject) {
return (function () {
return func.apply(thisObject, arguments);
});
};
function _extend(target, source) {
for (var p in source) {
if (source.hasOwnProperty(p)) {
target[p] = source[p];
}
}
return target;
}
_extend(navCommon, appUtil);
navCommon.init = function () {
this._reportShowJsTmplJson = proxy(_tempNav, this);
return this;
};
navCommon.run = function (data,elementId,isBlank) {
var _reportShowJsTmplJson1 = this._reportShowJsTmplJson();
$.tmpl(_reportShowJsTmplJson1, data).appendTo("#" + elementId);
var report=data.report;
appReport(isBlank,report);
// uDate();
$(window).resize(function(){
// uDate();
});
return this;
};
function appReport(_isBlank,report){
if(!_isBlank){
var rpt="<li role=\"presentation\" class=\"active\"><a href=\"#"+report.reportId+"\" aria-controls=\""+report.reportId+"\" role=\"tab\" data-toggle=\"tab\"><i class=\"fa "+report.icon+"\"></i><span class=\"nav-label text-tip\">"+report.itm+"</span></a></li>";
$(".nav-header").after(rpt);
}else {
$(".new-guid").addClass('active');
}
}
// function uDate() {
// var inHeight = window.innerHeight;
// $("#page-wrapper").css("min-height",inHeight);
// var sumHeight = 0;
// var liHeight = $(".new-guid").height();
// var mtop;
// if ($("#side-menu .version-update-li").length>0){
// $("#side-menu").find("li").not(".new-guid").not(".version-update-li").each(function () {
// sumHeight += $(this).height();
// mtop = inHeight - sumHeight - liHeight*2-40;
// $(".version-update-li").css("margin-top", mtop + "px");
// });
// }else{
// $("#side-menu").find("li").not(".new-guid").each(function () {
// sumHeight += $(this).height();
// mtop = inHeight - sumHeight - liHeight-40;
// $(".new-guid").css("margin-top", mtop + "px").css("border-top","1px solid #1ab394");
// });
// }
// }
function _tempNav() {
return "<!--左侧导航-->"
+ "<div class=\"sidebar-collapse\">"
+ "<ul class=\"nav metismenu\" id=\"side-menu\">"
+ "<li class=\"nav-header\">"
+ "<div class=\"dropdown profile-element text-center\">"
+ "<span>"
+ "<img alt=\"image\" class=\"img-circle\" src=\"${url}\" style=\"width:75px;height:75px;\">"
+ "</span>"
+ "<span class=\"clear\">"
+ "<span class=\"block m-t-xs\"><strong class=\"font-bold\" style=\"color:#FFFFFF\">${anayname}</strong></span>"
+ "</span>"
+ "</div>"
+ "<div class=\"logo-element\">${anayname}</div>"
+ "</li>"
+ "{{each(i,dat) lis}}"
+ "<li role=\"presentation\" class=\'${dat.class}\'>"
+ "{{if dat.collapses&&dat.collapses !=\"\"}}"
+ "<a href=\"javascript:void(0);\"><i class=\"fa ${dat.icon}\"></i><span class=\"nav-label\">${dat.itm}</span><span class=\"${dat.arrow}\"></span></a>"
+ "{{else}}"
+ "<a href=\"#${dat.id}\" aria-controls=\"${dat.id}\" role=\"tab\" data-toggle=\"tab\"><i class=\"fa ${dat.icon}\"></i><span class=\"nav-label text-tip\">${dat.itm}</span><span class=\"${dat.arrow}\"></span></a>"
+ "{{/if}}"
+ "<ul class=\"nav nav-second-level collapse\">"
+ "{{each dat.collapses}}"
+ "<li><a href=\"#{{= $value.id}}\" aria-controls=\"{{= $value.id}}\" role=\"tab\" data-toggle=\"tab\">{{= $value.itm}}</a></li>"
+ "{{/each}}"
+ "</ul>"
+ "</li>"
+ "{{/each}}"
+ "</ul>"
+ "</div>"
}
})(window, jQuery);
$(document).ready(function(){
$("#side-menu>li").each(function(){
if($(this).find("ul").find("li").length>0){
$(this).find("a").click(function(){
$(this).parent().siblings().find("a").find("span:last-child").removeClass("arrow-transtion");
$(this).find("span:last-child").toggleClass("arrow-transtion");
$(this).parent().removeClass("active");
$(this).next("ul").toggleClass("in");
$(this).next("ul").find("li").click(function(){
$(this).parent().parent("li").siblings().removeClass("active");
$(this).parent().addClass("in");
$(this).parent().parent("li").siblings().find("ul").find("li").removeClass("active");
});
})
}else{
$(this).click(function(){
$(this).siblings().find("ul").find("li").removeClass("active");
$(this).siblings().find("ul").removeClass("in");
$(this).siblings().find("a").find("span:last-child").removeClass("arrow-transtion");
})
}
});
});
jquery模板制作左侧导航组件的更多相关文章
- 修改layui的后台模板的左侧导航栏可以伸缩
原生的左侧导航栏代码: <div class="layui-side layui-bg-black"> <div class="layui-side-s ...
- 简单的jquery左侧导航栏和页面选中效果
这里是要实现导航的左侧并选中的,此功能需引用jquery 效果: 左侧导航 <div class="box"> <ul class="menu" ...
- 使用 EasyUI 创建左侧导航菜单
使用 JQuery EasyUI 创建左侧导航菜单,菜单的数据由后台服务提供. 效果图 HTML 元素 <div id="menuAccordion"></div ...
- ElementUI+命名视图实现复杂顶部和左侧导航栏
在了解了命名视图的用途后,发现用命名视图来实现复杂导航更加省力.更多知识请参考这里 这里只说明重要配置内容,其他内容配置请参考上一篇初始版本: ElementUI 复杂顶部和左侧导航栏实现 或参考文末 ...
- jquery仿天猫商城左侧导航菜单
之前看到有博友写了一个仿天猫商城左侧导航菜单,可惜不提供免费下载,也没有代码.以前自己也写过类似的效果,只是都是一小块一小块的,现在重新拼凑.我将一步一步的实现拼凑过程,希望对你有所帮助. Demo在 ...
- 简单的jquery左侧导航栏和页面选中
这里是要实现导航的左侧并选中的,此功能需引用jquery 左侧导航: <div class="box"> <ul class="menu"&g ...
- (转)jquery仿天猫商城左侧导航菜单
原文地址:http://www.cnblogs.com/WinKi/p/3398824.html 之前看到有博友写了一个仿天猫商城左侧导航菜单,可惜不提供免费下载,也没有代码.以前自己也写过类似的效果 ...
- [转]玩转Angular2(4)--制作左侧自动定位菜单
本文转自:https://godbasin.github.io/2017/06/02/angular2-free-4-create-sidebar/ 因为项目原因又玩上了Angular2(v4.0+) ...
- Discuz3.3精仿小米风格整站模板制作——1、新建模板方案
术语说明: 模板——模板是一堆按照规定命名方式的html文件,用于指定整个论坛不同页面的外观. 标签——标签和模板共同作用以实现论坛换肤功能,其中标签主要控制页面显示什么数据,显示多少条等. 风格—— ...
随机推荐
- 02-编写第一个C语言程序
本文目录 1.打开Xcode,新建Xcode项目 2.选择最简单的命令行项目 3.输入项目信息 4.选择一个用来存放C程序代码的文件夹 5.运行项目 说明:这个C语言专题,是学习iOS开发的前奏.也为 ...
- linux显示-bash-4.2# 问题
今天,安装配置完mysql后,重新连接的shell的时候显示的不是root@localhost # 了,而是显示的-bash-4.2# 提示信息: Last login: Tue Apr 5 00:3 ...
- 监控 Linux Unix Solaris AIX, swap page in / swap page out
vmstat 的 pi/po si/so --监控一天 vmstat 5 17280> vmstat.txt sar -W 1.得到数据 (linux 的 /var/log/sar/saX 自带 ...
- angular 三目运算符 需要换色或style
解决方法:直接简单粗暴写两个.有点挫,但实现需求了. <font style="color:red" ng-show="boxlist.lineTitle.leng ...
- 使用mvn插件执行工程单元测试OOM的解决办法
在执行mvn test时,maven会启动一个fork进程来运行所有的单元测试类,所以我需要设置的是这个fork进程的jvm参数. 不过最终还是让我找到了http://maven.apache.org ...
- 位域 unsigned int a : 4;
位域 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可.为了节省存储空间,并使处理简便,C语言又提供了一种数 ...
- css\html布局及部分知识小分享~~~
近期发现和总结的知识跟大侠们分享,请大侠们多多评论指教一二? HTML 1.(1)body需设置页面默认字体大小 body{font-size:12px;} (2)IE6下png图片划过切换失效,建 ...
- 线性布局通过适配器可以动态加载view
因为适配器的getView的返回对象是view, 所以线性布局的对象可以通过addView动态加载适配器的getView 举例: mTestAdapter = new ListAdapter(this ...
- 移动端rem处理字体的js代码
(function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? ...
- Solr安装入门、查询详解
Solr安装入门:http://www.importnew.com/12607.html 查询详解:http://www.360doc.com/content/14/0306/18/203871_35 ...