溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎樣運(yùn)用layui-tree實(shí)現(xiàn)美化左側(cè)菜單

發(fā)布時(shí)間:2020-06-23 10:57:50 來源:億速云 閱讀:228 作者:Leah 欄目:web開發(fā)

怎樣運(yùn)用layui-tree實(shí)現(xiàn)美化左側(cè)菜單?針對(duì)這個(gè)問題,這篇文章給出了相對(duì)應(yīng)的分析和解答,希望能幫助更多想解決這個(gè)問題的朋友找到更加簡(jiǎn)單易行的辦法。

layui-tree實(shí)現(xiàn)左側(cè)菜單

怎樣運(yùn)用layui-tree實(shí)現(xiàn)美化左側(cè)菜單

html

<div class="layui-side layui-bg-black">
        <div class="layui-side-scroll " >
            <div id="sidemenubar" lay-filter="test"></div>
        </div>
</div>

css

/*左側(cè)導(dǎo)航*/
.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內(nèi)容的最后-->
<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 =  [ //節(jié)點(diǎn)
            {
                name: '常用文件夾'
                ,id: '1'
                ,children: [
                {
                    name: '所有未讀'
                    ,id: '11'
                    ,url: 'http://www.layui.com/'
                }, {
                    name: '置頂郵件'
                    ,id: '12'
                }, {
                    name: '標(biāo)簽郵件'
                    ,id: '13'
                }
            ]
            }, {
                name: '我的郵箱'
                ,id: '2'
                ,children: [
                    {
                        name: 'QQ郵箱'
                        ,id: '21'
                        ,spread: true
                        ,children: [
                        {
                            name: '收件箱'
                            ,id: '211'
                            ,children: [
                            {
                                name: '所有未讀'
                                ,id: '2111'
                            }, {
                                name: '置頂郵件'
                                ,id: '2112'
                            }, {
                                name: '標(biāo)簽郵件'
                                ,id: '2113'
                            }
                        ]
                        }, {
                            name: '已發(fā)出的郵件'
                            ,id: '212'
                        }, {
                            name: '垃圾郵件'
                            ,id: '213'
                        }
                    ]
                    }, {
                        name: '阿里云郵'
                        ,id: '22'
                        ,children: [
                            {
                                name: '收件箱'
                                ,id: '221'
                            }, {
                                name: '已發(fā)出的郵件'
                                ,id: '222'
                            }, {
                                name: '垃圾郵件'
                                ,id: '223'
                            }
                        ]
                    }
                ]
            }
        ]
    layui.tree({
        elem: '#sidemenubar' //傳入元素選擇器
        ,skin: 'sidebar'  //自定義tree樣式的類名
        ,nodes:menuData  //節(jié)點(diǎn)數(shù)據(jù)
        ,click: function(node,item){
            //node即為當(dāng)前點(diǎn)擊的節(jié)點(diǎn)數(shù)據(jù),item就是被點(diǎn)擊的a標(biāo)簽對(duì)象了
            //導(dǎo)航按鈕選中當(dāng)前
            $('#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標(biāo)題
        tabUrl : '', //tab內(nèi)容嵌套iframe的src
        tabId  : '', //tab 標(biāo)簽的lay-id
        tabCon : function(){
            var result;
            $.ajax({
                type: 'get',
                url: this.tabUrl,
                dataType: 'html',
                success: function(data){
                    result = data;
                }
            })
            return result;
        },
        addTab : function(){ //新增tab項(xiàng)
            element.tabAdd('demo', {
                title: this.tabTit
                ,content: '<iframe src = '+this.tabUrl +' ></iframe>' //支持傳入html
                ,id: this.tabId
            })
        },
        changeTab: function(){ //選中tab項(xiàng)
            element.tabChange('demo', this.tabId);
        },
        ishasTab : function(){ //判斷tab項(xiàng)中是否包含
            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項(xiàng)邏輯思路

點(diǎn)擊左側(cè)導(dǎo)航,獲取它的數(shù)據(jù)(url,id。。。)

如果有url,則判斷其id是否與tab項(xiàng)的lay-id相同,相同則切換選中,不相同則新增

遇到的問題

layui-tree 單擊節(jié)點(diǎn)只返回當(dāng)前的節(jié)點(diǎn)數(shù)據(jù),不返回當(dāng)前節(jié)點(diǎn)的HTML對(duì)象

解決方案

更改tree.js 源碼

怎樣運(yùn)用layui-tree實(shí)現(xiàn)美化左側(cè)菜單

e.children("a").on("click",
                    function(e) {
                        layui.stope(e),
                            i.click(o,this)
                    })
i.click(o)改為 i.click(o,this)

使用

怎樣運(yùn)用layui-tree實(shí)現(xiàn)美化左側(cè)菜單

關(guān)于用layui-tree實(shí)現(xiàn)美化左側(cè)菜單的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI