您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

使用layui-tree美化左侧菜单的方法

2024/4/29 1:48:43发布8次查看
layui-tree美化左侧菜单
html
<div class="layui-side layui-bg-black">        <div class="layui-side-scroll " >            <div id="sidemenubar" lay-filter="test"></div>        </div></div>
css
/*左侧导航*/.layui-tree-skin-sidebar li i{    color: rgba(255,255,255,.7);    display: none;}.layui-tree-skin-sidebar li a cite{    color: rgba(255,255,255,.7)}.layui-tree-skin-sidebar li .layui-tree-spread{    display: block;    position: absolute;    right: 30px;}.layui-tree-skin-sidebar li{    line-height: 45px;    position: relative;}.layui-tree-skin-sidebar li ul{    margin-left: 0;    background: rgba(0,0,0,.3);}.layui-tree-skin-sidebar li ul a{    padding-left: 20px;}.layui-tree-skin-sidebar li a{    height: 45px;    border-left: 5px solid transparent;    box-sizing: border-box;    width: 100%;}.layui-tree-skin-sidebar li a:hover{    background: #4e5465;    color: #fff;    border-left: 5px solid #009688;}.layui-tree-skin-sidebar li a.active{    background: #009688;}
js
<!--layui.js文件必须放到html内容的最后--><script src="layui/layui.js"></script>layui.use(['element','layer','jquery','tree'], function(){    var element = layui.element;    var layer = layui.layer;    var $ = layui.jquery;    var menudata =  [ //节点            {                name: '常用文件夹'                ,id: '1'                ,children: [                {                    name: '所有未读'                    ,id: '11'                    ,url: 'http://www.layui.com/'                }, {                    name: '置顶邮件'                    ,id: '12'                }, {                    name: '标签邮件'                    ,id: '13'                }            ]            }, {                name: '我的邮箱'                ,id: '2'                ,children: [                    {                        name: 'qq邮箱'                        ,id: '21'                        ,spread: true                        ,children: [                        {                            name: '收件箱'                            ,id: '211'                            ,children: [                            {                                name: '所有未读'                                ,id: '2111'                            }, {                                name: '置顶邮件'                                ,id: '2112'                            }, {                                name: '标签邮件'                                ,id: '2113'                            }                        ]                        }, {                            name: '已发出的邮件'                            ,id: '212'                        }, {                            name: '垃圾邮件'                            ,id: '213'                        }                    ]                    }, {                        name: '阿里云邮'                        ,id: '22'                        ,children: [                            {                                name: '收件箱'                                ,id: '221'                            }, {                                name: '已发出的邮件'                                ,id: '222'                            }, {                                name: '垃圾邮件'                                ,id: '223'                            }                        ]                    }                ]            }        ]    layui.tree({        elem: '#sidemenubar' //传入元素选择器        ,skin: 'sidebar'  //自定义tree样式的类名        ,nodes:menudata  //节点数据        ,click: function(node,item){            //node即为当前点击的节点数据,item就是被点击的a标签对象了            //导航按钮选中当前            $('#sidemenubar a').removeclass('active');            $(item).addclass('active');            $(item).siblings('.layui-tree-spread').click();            //添加新tab            activetab.init(node.name,node.url,node.id);        }    });    var activetab = {        tabtit : '', //tab titile标题        taburl : '', //tab内容嵌套iframe的src        tabid  : '', //tab 标签的lay-id        tabcon : function(){            var result;            $.ajax({                type: 'get',                url: this.taburl,                datatype: 'html',                success: function(data){                    result = data;                }            })            return result;        },        addtab : function(){ //新增tab项            element.tabadd('demo', {                title: this.tabtit                ,content: '<iframe src = '+this.taburl +' ></iframe>' //支持传入html                ,id: this.tabid            })        },        changetab: function(){ //选中tab项            element.tabchange('demo', this.tabid);        },        ishastab : function(){ //判断tab项中是否包含            var _this = this;            var dataid,isflag;            var arrays = $('.layui-tab-title li');            $.each(arrays,function(idx,ele){                dataid = $(ele).attr('lay-id');                if(dataid === _this.tabid){                    isflag = true                    return false                }else{                    isflag = false                }            })            return isflag        },        init : function(tabtit,taburl,tabid){            var _this = this;            _this.taburl = taburl;            _this.tabid = tabid;            _this.tabtit = tabtit;            if(taburl){                if(!_this.ishastab()){                    _this.addtab();                }                _this.changetab();            }else{                return false            }        }    }});
新增tab项逻辑思路
点击左侧导航,获取它的数据(url,id。。。)
如果有url,则判断其id是否与tab项的lay-id相同,相同则切换选中,不相同则新增
遇到的问题
layui-tree 单击节点只返回当前的节点数据,不返回当前节点的html对象
解决方案
更改tree.js 源码
e.children(a).on(click,                    function(e) {                        layui.stope(e),                            i.click(o,this)                    })i.click(o)改为 i.click(o,this)
使用
更多layui知识请关注layui使用教程栏目。
以上就是使用layui-tree美化左侧菜单的方法的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录