/**
* 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模板制作左侧导航组件的更多相关文章

  1. 修改layui的后台模板的左侧导航栏可以伸缩

    原生的左侧导航栏代码: <div class="layui-side layui-bg-black"> <div class="layui-side-s ...

  2. 简单的jquery左侧导航栏和页面选中效果

    这里是要实现导航的左侧并选中的,此功能需引用jquery 效果: 左侧导航 <div class="box"> <ul class="menu" ...

  3. 使用 EasyUI 创建左侧导航菜单

    使用 JQuery EasyUI 创建左侧导航菜单,菜单的数据由后台服务提供. 效果图 HTML 元素 <div id="menuAccordion"></div ...

  4. ElementUI+命名视图实现复杂顶部和左侧导航栏

    在了解了命名视图的用途后,发现用命名视图来实现复杂导航更加省力.更多知识请参考这里 这里只说明重要配置内容,其他内容配置请参考上一篇初始版本: ElementUI 复杂顶部和左侧导航栏实现 或参考文末 ...

  5. jquery仿天猫商城左侧导航菜单

    之前看到有博友写了一个仿天猫商城左侧导航菜单,可惜不提供免费下载,也没有代码.以前自己也写过类似的效果,只是都是一小块一小块的,现在重新拼凑.我将一步一步的实现拼凑过程,希望对你有所帮助. Demo在 ...

  6. 简单的jquery左侧导航栏和页面选中

    这里是要实现导航的左侧并选中的,此功能需引用jquery 左侧导航: <div class="box"> <ul class="menu"&g ...

  7. (转)jquery仿天猫商城左侧导航菜单

    原文地址:http://www.cnblogs.com/WinKi/p/3398824.html 之前看到有博友写了一个仿天猫商城左侧导航菜单,可惜不提供免费下载,也没有代码.以前自己也写过类似的效果 ...

  8. [转]玩转Angular2(4)--制作左侧自动定位菜单

    本文转自:https://godbasin.github.io/2017/06/02/angular2-free-4-create-sidebar/ 因为项目原因又玩上了Angular2(v4.0+) ...

  9. Discuz3.3精仿小米风格整站模板制作——1、新建模板方案

    术语说明: 模板——模板是一堆按照规定命名方式的html文件,用于指定整个论坛不同页面的外观. 标签——标签和模板共同作用以实现论坛换肤功能,其中标签主要控制页面显示什么数据,显示多少条等. 风格—— ...

随机推荐

  1. 《BI项目笔记》创建多维数据集Cube(1)

    有两个事实表,因此就有两个度量值组,并且向导将为非维度键的事实表中的每一个数值列创建一个度量值.由于我们这里不需要那么多,所以只选择部分度量值.另外要注意,度量值的名称源于事实表中的列,所有名称由可能 ...

  2. sublime 3

    主题: Theme: Flatland 着色:todo Blue Dawn.tmTheme {     "theme": "Flatland Dark.sublime-t ...

  3. linux chomd 学习

    chomd -R 777 directory_name :递归地给directory目录下所有文件和子目录的属主分配读的权限 ------2016-10-31 -- source: Linux chm ...

  4. [SoapUI] JDBC 请求连接SQL Sever,MySQL

    MySQLDriver: com.mysql.jdbc.DriverConnection string: jdbc:mysql://localhost:3306/xxx?user=xxx&pa ...

  5. 如何低成本的打造HTC Vive虚拟演播室直播MR视频?

    http://m.toutiao.com/i6298923859378700802/?tt_from=weixin&utm_campaign=client_share&from=gro ...

  6. ThreadLocal工作原理

    原文出处: imzoer 在这篇文章中,总结了一下面试过程中遇到的关于ThreadLocal的内容.总体上说,这样回答,面试算是过得去了.但是,这样的回答,明显仅仅是背会了答案,而没有去研究Threa ...

  7. MyBatis/Ibatis中#和$的区别

    1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111&qu ...

  8. 2014-07-29 Asp.Net 中级工程师 笔试题

    一.选择题    1.下列描述错误的是() A  类不可以被多重继承而接口可以: B  抽象类自身可以定义成员而接口不可以: C  抽象类和接口都不能被实例化: D   一个类可以继承多个基类和多个基 ...

  9. varchar类型转换为numeric的值时有问题原因

    numeric的值不应该用单引号括起来...........

  10. 老麦看点:SEO高手的两大秘诀

    一.技术真的是主导因素吗? 很多人站长朋友操作一段网站之后,发现自己的排名还是在渺渺无期,真可谓:“众里寻排名千百度,可是排名却不在阑珊处”,于是我们开始怀疑自己,怀疑自己的技术等,但是我们静下心里仔 ...