溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用layui-tree美化左側菜單

發布時間:2021-09-23 15:31:12 來源:億速云 閱讀:214 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關如何使用layui-tree美化左側菜單,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

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-tree美化左側菜單”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女