layui 无限极菜单

3 篇文章 0 订阅
2 篇文章 0 订阅

1.框架:layui
2.目的:无限极菜单
3.数据返回:json,也可以自定义jsoin
4.最终实现如下
在这里插入图片描述
5代码实现
由于第一次需要有li所以只能剥离做两次进行实现

html

<ul class="layui-nav layui-nav-tree" lay-filter="leftmenu" id="menu"></ul>

jq

调用:

$("#menu").append(menu_apd(res,0))
//执行得到一级菜单li
ch-->返回的json数据
p-->左边距距离
function menu_apd(ch,p) {

            var html = "";
            var p = 20+p;
            for(var i in ch){
                if(ch[i].children){
                     html+='<li class="layui-nav-item layui-nav-itemed">' +
                         '<a href="javascript:;" style="padding-left: '+p+'px"><i class="iconfont '+ch[i].icon+'"> </i> '+ch[i].title+'</a>' +
                         '<dl class="layui-nav-child">' ;
                             if( ch[i].children){
                                 html+=dlfor(ch[i].children,p);
                             }
                    html+='</dl>'+
                    '</li>'
                }else {
                    html+='<li class="layui-nav-item"><a class="nav-active" href="javascript:;" data-id="'+ch[i].c+'" data-url="'+ch[i].m+'/'+ch[i].c+'" data-title="'+ch[i].title+'">'+ch[i].title+'</a></li>'
                }
            }
            return html
        }
//li下进行的循环执行
list-->孩子节点
p-->距离左边距
function dlfor(list,p){
            var p = p+10;
            var dd = "";

            for(var k in list){
                dd+='<dd>' ;

                if(list[k].children){
                    dd+='<a href="javascript:;" style="padding-left:'+p+'px "><i class="iconfont '+list[k].icon+'"> </i>  '+list[k].title+'</a>' +
                        '<dl class="layui-nav-child">' ;

                    dd+=dlfor(list[k].children,p);
                    dd+='</dl>';
                }else{
                    dd+='<a href="javascript:;" class="nav-active" style="padding-left:'+p+'px  " data-id="'+list[k].c+'" data-url="'+list[k].m+'/'+list[k].c+'" data-title="'+list[k].title+'"><i class="iconfont '+list[k].icon+'"> </i> '+list[k].title+'</a>';
                }
                dd+="</dd>";
            }
            return dd;
        }

结余:菜单点击收缩可是借助jq动画实现

var kks = 1;
$('.menu-act').on('click',function () {
    if(kks%2 == 0){
        $(".layui-layout-admin .layui-side").animate({width:"200px"},500);
      }else{
        $(".layui-layout-admin .layui-side").animate({width:"40px"},500);
     }
    kks++;

})
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_28761593

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值