/**
* 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. union (共用声明和共用一变量定义)

    "联合"是一种特殊的类,也是一种构造类型的数据结构.在一个"联合"内可以定义多种不同的数据类型, 一个被说明为该"联合"类型的变量中,允许装 ...

  2. java练习题(字符串类):显示4位验证码、输出年月日、从XML中抓取信息

    1.显示4位验证码 注:大小写字母.数字混合 public static void main(String[] args) { String s="abcdefghijklmnopqrstu ...

  3. C++成员变量内存对齐问题,ndk下非对齐的内存访问导致BUS_ADRALN

    同样的代码,在vs下运行正常,在android ndk下却崩溃: signal 7(SIGBUS),code 1 (BUS_ADRALN),fault addr 0xe6b82793 Func(sho ...

  4. myeclipse中disable maven nature

    1.直接原因:出现这个问题,一般都是因为手抖误操作. 但是出现了问题,还不知道从何查起. 可能出现的场景是eclipse安装Maven插件后,右键项目却找不到Maven按钮,继而无法编译项目. 2.实 ...

  5. python核心编程第六章练习6-10

    6-10.字符串.写一个函数,返回一个跟输入字符串相似的字符串,要求字符串的大小写反转,比如,输入“Mr.Ed”,应该返回“mR.eD”作为输出.[答案]代码如下: #!/usr/bin/env py ...

  6. linux笔记:shell编程-正则表达式

    正则表达式与通配符(正则表达式匹配字符串,是包含匹配:通配符匹配文件名,是完全匹配.): 基础正则表达式: 正则表达式示例:

  7. Django1.9开发博客(12)- i18n国际化

    国际化与本地化的目的为了能为各个不同的用户以他们最熟悉的语言和格式来显示网页. Django能完美支持文本翻译.日期时间和数字的格式化.时区. 另外,Django还有两点优势: 允许开发者和模板作者指 ...

  8. [maven] 使用Nexus创建maven私有仓库

    1.为什么需要maven私有仓库? 从Maven中央仓库下载所需的jar包,需要外网的支持.如果公司不能上外网的话则不能从中央仓库下载所需jar包,公司网速慢的时候也会影响项目构建的速度.用户可以用n ...

  9. postgresql - 服务配置

    1.查看配置的修改是否需要重启数据库 select name,context from pg_settings where name like 'wal_buffers'; 如果context的值是p ...

  10. java程序

    package Dome3; import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import jav ...