您好,登錄后才能下訂單哦!
怎樣運(yùn)用layui-tree實(shí)現(xiàn)美化左側(cè)菜單?針對(duì)這個(gè)問題,這篇文章給出了相對(duì)應(yīng)的分析和解答,希望能幫助更多想解決這個(gè)問題的朋友找到更加簡(jiǎ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 源碼
e.children("a").on("click", function(e) { layui.stope(e), i.click(o,this) }) i.click(o)改為 i.click(o,this)
使用
關(guān)于用layui-tree實(shí)現(xiàn)美化左側(cè)菜單的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(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)容。