前言
layui的使用大多参考官方文档和相应的layadmin静态页面资料,但是还是有很多不太详细的地方,在使用侧边框伸缩的时候就遇到了问题,不过最后也是查找原来的layadmin最后解决了,所以写在这里记录一下。
一、侧边框伸缩?
参考官方文档的layadmin是实现了侧边伸缩功能了的,但是由于是模块封装,有时候我们可能只需要这一个功能,所以需要将这一个功能单独实现弄明白。
本文的实现是基于layui的官方文档:
https://layui.dev/docs/2/layout/
根据链接复制代码即可。但是代码没有实现侧边框伸缩,所以接下来是整个代码的核心块:
menuLeft: function(othis){ // 左侧菜单事件
$('#sideMenuId').toggleClass('layui-hide-xs');
$('#sideMenu').toggleClass('layui-hide-xs');
if($('#sideMenu').hasClass('layui-hide-xs')){
$('.layui-layout-left').css('left', 0+'px');
$('.layui-body').css('left', 0+'px');
$('.layui-footer').css('left', 0+'px');
}else{
$('.layui-layout-left').css('left', 200+'px');
$('.layui-body').css('left', 200+'px');
$('.layui-footer').css('left', 200+'px');
}
$(‘#sideMenuId’).toggleClass(‘layui-hide-xs’);是为了将侧边框隐藏或者显示
下面的if判断是为了保证侧边框隐藏以后将侧边框留下的空白给填充。
主要是使用了 css中的left; 也就是距离最左侧多远开始,修改为0的话就可以填充完完整界面。
二、使用步骤
1.拷贝代码并修改依赖地址
主要是layui的css和js的地址信息。
代码如下(示例):
<link href="layui/css/layui.css" rel="stylesheet">
<script src="layui/layui.js"></script>
2.最后实现展示
实现结果展示:
完整代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>layout 管理界面大布局示例 - Layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="layui/css/layui.css" rel="stylesheet">
</head>
<body>
<div class="layui-layout layui-layout-admin">
<div class="layui-header">
<!--头部id-->
<div class="layui-logo layui-bg-black layui-hide-xs " id="sideMenuId">layout demo</div>
<!-- 头部区域(可配合layui 已有的水平导航) -->
<ul class="layui-nav layui-layout-left ">
<li class="layui-nav-item layui-show-xs-inline-block " lay-header-event="menuLeft">
<i class="layui-icon layui-icon-spread-left"></i>
</li>
<li class="layui-nav-item layui-hide-xs"><a href="javascript:;">nav 1</a></li>
<li class="layui-nav-item layui-hide-xs"><a href="javascript:;">nav 2</a></li>
<li class="layui-nav-item layui-hide-xs"><a href="javascript:;">nav 3</a></li>
<li class="layui-nav-item">
<a href="javascript:;">nav groups</a>
<dl class="layui-nav-child">
<dd><a href="javascript:;">menu 11</a></dd>
<dd><a href="javascript:;">menu 22</a></dd>
<dd><a href="javascript:;">menu 33</a></dd>
</dl>
</li>
</ul>
<ul class="layui-nav layui-layout-right">
<li class="layui-nav-item layui-hide layui-show-sm-inline-block">
<a href="javascript:;">
<img src="//unpkg.com/outeres@0.0.10/img/layui/icon-v2.png" class="layui-nav-img">
tester
</a>
<dl class="layui-nav-child">
<dd><a href="javascript:;">Your Profile</a></dd>
<dd><a href="javascript:;">Settings</a></dd>
<dd><a href="javascript:;">Sign out</a></dd>
</dl>
</li>
<li class="layui-nav-item" lay-header-event="menuRight" lay-unselect>
<a href="javascript:;">
<i class="layui-icon layui-icon-more-vertical"></i>
</a>
</li>
</ul>
</div>
<!--侧边导航栏-->
<div class="layui-side layui-bg-black layui-hide-xs" id="sideMenu">
<div class="layui-side-scroll">
<!-- 左侧导航区域(可配合layui已有的垂直导航) -->
<ul class="layui-nav layui-nav-tree" lay-filter="test">
<li class="layui-nav-item layui-nav-itemed">
<a class="" href="javascript:;">menu group 1</a>
<dl class="layui-nav-child">
<dd><a href="javascript:;">menu 1</a></dd>
<dd><a href="javascript:;">menu 2</a></dd>
<dd><a href="javascript:;">menu 3</a></dd>
<dd><a href="javascript:;">the links</a></dd>
</dl>
</li>
<li class="layui-nav-item">
<a href="javascript:;">menu group 2</a>
<dl class="layui-nav-child">
<dd><a href="javascript:;">list 1</a></dd>
<dd><a href="javascript:;">list 2</a></dd>
<dd><a href="javascript:;">超链接</a></dd>
</dl>
</li>
<li class="layui-nav-item"><a href="javascript:;">click menu item</a></li>
<li class="layui-nav-item"><a href="javascript:;">the links</a></li>
</ul>
</div>
</div>
<div class="layui-body" style="width: auto">
<!-- 内容主体区域 -->
<div style="padding: 15px;">
<blockquote class="layui-elem-quote layui-text">
Layui 框体布局内容主体区域
</blockquote>
<div class="layui-card layui-panel">
<div class="layui-card-header">
下面是充数内容,为的是出现滚动条
</div>
<div class="layui-card-body">
充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>你还真滑到了底部呀
</div>
</div>
<br><br>
</div>
</div>
<div class="layui-footer">
<!-- 底部固定区域 -->
底部固定区域
</div>
</div>
<script src="layui/layui.js"></script>
<script>
//JS
layui.use(['element', 'layer', 'util'], function(){
var element = layui.element;
var layer = layui.layer;
var util = layui.util;
var $ = layui.$;
//头部事件
util.event('lay-header-event', {
menuLeft: function(othis){ // 左侧菜单事件
$('#sideMenuId').toggleClass('layui-hide-xs');
$('#sideMenu').toggleClass('layui-hide-xs');
if($('#sideMenu').hasClass('layui-hide-xs')){
$('.layui-layout-left').css('left', 0+'px');
$('.layui-body').css('left', 0+'px');
$('.layui-footer').css('left', 0+'px');
}else{
$('.layui-layout-left').css('left', 200+'px');
$('.layui-body').css('left', 200+'px');
$('.layui-footer').css('left', 200+'px');
}
},
menuRight: function(){ // 右侧菜单事件
layer.open({
type: 1,
title: '更多',
content: '<div style="padding: 15px;">处理右侧面板的操作</div>',
area: ['260px', '100%'],
offset: 'rt', // 右上角
anim: 'slideLeft', // 从右侧抽屉滑出
shadeClose: true,
scrollbar: false
});
}
});
});
</script>
</body>
</html>