模板简介
模板使用说明(必读)
主题配色问题
关于V5模板中的CSS变量
首页修改地址后刷新不变的问题
顶部导航对应侧边栏菜单切换
侧边栏菜单的JS初始化
iframe子页面刷新问题
iframe版本右侧内容区域404问题
关于非iframe版本菜单高亮
iframe版本的Tab插件相关问题
关于iframe版本里面的加载动画
webuploader使用时候的问题
模板字体图标问题
关于版权和商业用途
模板中固有插件
1
bootstrap-colorpicker颜色选择
2
bootstrap-datepicker日期选择
3
bootstrap-datetimepicker日期时间
4
bootstrap-maxlength长度验证
5
bootstrap-select下拉选择
6
bootstrap-table表格插件
7
fullcalendar日程插件
8
jquery-confirm对话框
9
jquery-tagsinput标签插件
10
magnific-popup图片查看
11
webuploader上传插件
12
bootstrap-notify消息插件
13
chartjs图表插件
14
bootstrap.wizard向导插件
15
perfect-scrollbar滚动条插件
16
bootstrap-multitabs多标签
17
moment.js日期处理类
18
loading插件
19
popper插件
插件项目包含插件
1
bootstrap-daterangepicker
2
material-datetimepicker
3
dropzone上传
4
cropper图片裁剪
5
ckeditor富文本编辑器
6
editor.md编辑器
7
summernote富文本编辑器
8
tinymce富文本编辑器
9
ueditor富文本编辑器
10
wangeditor富文本编辑器
11
jquery-validate表单验证
12
bootstrap-selectN联动
13
bootstrap-lyear-select下拉
14
select2下拉选择框
15
lyear-dropdowntree下拉树状
16
ZTree树形菜单
17
treeview树状插件
18
jstree树状结构
19
imgVer拼图滑块
20
sliderVerification滑块验证
21
layer弹窗插件
22
jquery.auto.complete自动填充
23
fixedheadertable固定表头
24
fontIconPicker图标选择
25
jQuery Raty评分插件
26
jquery.toolbar弹出式工具栏
27
bootstrap-touchspin输入微调器
插件项目包含示例
1
表单布局示例
2
聊天页面示例
3
logo处使用文字
4
模态框中使用Tab
5
模态框最大化
6
搜索布局
7
搜索布局2
8
选择示例
9
选择示例2
10
选择示例3
11
选择示例4
12
代码演示切换
13
留言列表布局
14
布局(数据统计篇)
15
布局(产品价格篇)
16
布局(搜索框篇)
17
布局(用户篇)
18
布局(动画篇)
19
布局(其他篇)
20
另一种侧边栏菜单
21
顶部和左侧联动
22
JS初始化菜单
23
H5上传
JS初始化菜单 - 光年模板(V5)说明文档 - 笔下光年
网站首页
JS初始化菜单
这里以iframe版本为例。您可以将下面的代码放到 `index.min.js` 中,要放到 `;jQuery( function() {});` 外面,然后直接使用 `setSidebar(menus);`,调用时传入的参数,可以是 `json` 字符串,也可以是对象,不需要是树状结构的。 以下是主要的js代码。 ```javascript var menu_list = [{"id":"1","name":"后台首页","url":"lyear_main_1_v5.html","pid":0,"icon":"mdi mdi-home","is_out":0,"is_home":1},{"id":"2","name":"布局示例","url":"#!","pid":0,"icon":"mdi mdi-palette","is_out":0,"is_home":0},{"id":"3","name":"表单布局示例","url":"lyear_layout_form.html","pid":2,"icon":"","is_out":0,"is_home":0},{"id":"4","name":"聊天页面示例","url":"lyear_layout_chat.html","pid":2,"icon":"","is_out":0,"is_home":0},{"id":"5","name":"logo处使用文字","url":"lyear_layout_logo_text.html","pid":2,"icon":"","is_out":1,"is_home":0},{"id":"6","name":"多级菜单","url":"#!","pid":0,"icon":"mdi mdi-menu","is_out":0,"is_home":0},{"id":"7","name":"一级菜单","url":"#!","pid":6,"icon":"","is_out":0,"is_home":0},{"id":"8","name":"一级菜单","url":"#!","pid":6,"icon":"","is_out":0,"is_home":0},{"id":"9","name":"二级菜单","url":"#!","pid":8,"icon":"","is_out":0,"is_home":0},{"id":"10","name":"二级菜单","url":"#!","pid":8,"icon":"","is_out":0,"is_home":0},{"id":"11","name":"三级菜单","url":"#!","pid":10,"icon":"","is_out":0,"is_home":0},{"id":"12","name":"三级菜单","url":"#!","pid":10,"icon":"","is_out":0,"is_home":0}]; setSidebar(menu_list); /** * 菜单 * @param data 菜单JSON数据 * id 菜单唯一ID * name 菜单名称 * url 菜单链接地址 * icon 图标 * pid 父级ID * is_out 是否外链0否|1是,外链a标签没有class='multitabs' * is_home 是否首页 */ function setSidebar(data){ if (data.length == 0) return false; var treeObj = getTrees(data, 0, 'id', 'pid', 'children'); html = createMenu(treeObj, true); $('.sidebar-main').append(html); } function createMenu(data, is_frist) { var menu_body = is_frist ? '<ul class="nav-drawer">' : '<ul class="nav nav-subnav">'; for(var i = 0; i < data.length; i++){ iframe_class = data[i].is_out == 1 ? 'target="_blank"' : 'class="multitabs"'; icon_div = data[i].pid == 0 ? '<i class="' + data[i].icon + '"></i>' : ''; selected = (data[i].pid == 0) && (data[i].is_home == 1) ? 'active' : ''; menuName = data[i].pid == 0 ? '<span>' + data[i].name + '</span>' : data[i].name; homeIdName = (data[i].pid == 0) && (data[i].is_home == 1) ? 'id="default-page"' : ''; if (data[i].children && data[i].children.length > 0) { menu_body += '<li class="nav-item nav-item-has-subnav"><a href="javascript:void(0)">' + icon_div + menuName + '</a>'; menu_body += createMenu(data[i].children); } else { menu_body += '<li class="nav-item ' + selected + '"><a href="' + data[i].url + '" '+ iframe_class + homeIdName + '>' + icon_div + menuName + '</a>'; } menu_body += '</li>'; } menu_body += '</ul>'; return menu_body; }; /** * 树状的算法 * @params list 代转化数组 * @params parentId 起始节点 * @params idName 主键ID名 * @params parentIdName 父级ID名称 * @params childrenName 子级名称 * @author CSDN博主「伤包子」 */ function getTrees(list, parentId, idName, parentIdName, childrenName) { let items= {}; // 获取每个节点的直属子节点,*记住是直属,不是所有子节点 for (let i = 0; i < list.length; i++) { let key = list[i][parentIdName]; if (items[key]) { items[key].push(list[i]); } else { items[key] = []; items[key].push(list[i]); } } return formatTree(items, parentId, idName, childrenName); } /** * 利用递归格式化每个节点 */ function formatTree(items, parentId, idName, childrenName) { let result = []; if (!items[parentId]) { return result; } for (let t in items[parentId]) { items[parentId][t][childrenName] = formatTree(items, items[parentId][t][idName], idName, childrenName) result.push(items[parentId][t]); } return result; } ``` 菜单这一块的html代码,保留如下: ```html <div class="lyear-layout-sidebar-info lyear-scroll"> <nav class="sidebar-main"></nav> <div class="sidebar-footer"> <p class="copyright"> <span>Copyright © 2022. </span> <a target="_blank" href="http://www.bixiaguangnian.com">笔下光年</a> <span> All rights reserved.</span> </p> </div> </div> ``` > 注意:菜单的json串的变量,你在实际应用中可通过ajax从后端接口获取。 插件项目中页面名字:`lyear_layout_js_sidebar.html` 演示地址:http://lyear.itshubao.com/v5/example/
上一篇:
顶部和左侧联动
下一篇:
H5上传
阅读设置
字体大小
小号 (14px)
标准 (16px)
大号 (18px)
超大 (20px)
特大 (24px)
阅读主题
默认
护眼模式
夜间模式
古卷模式
恢复默认
确定