目录
🦁参考官方文档(上方已标注)是否有控件/模块,支持完成对应的功能-静态
🦁组件的介绍及分类
🦁组件的介绍
Layui 是一套开源的 Web UI 组件库,采用自身轻量级模块化规范,遵循原生态的 HTML/CSS/JavaScript 开发模式,极易上手,拿来即用。其风格简约轻盈,而内在雅致丰盈,甚至包括文档在内的每一处细节都经过精心雕琢,非常适合网页界面的快速构建。Layui 区别于一众主流的前端框架,却并非逆道而行,而是信奉返璞归真之道。确切地说,它更多是面向于追求简单的务实主义者,即无需涉足各类构建工具,只需面向浏览器本身,便可将页面所需呈现的元素与交互信手拈来。
🦁组件的分类
Layui的组件大致分为【基础】【通用】【表单】【展示】【交互】等.....
举个栗子:
表格(Table):提供了灵活的表格展示和操作功能,支持排序、分页、编辑、删除等。
表单(Form):用于创建各种类型的表单,包括输入框、下拉框、复选框等,支持各种验证规则。
弹层(Layer):提供弹窗的功能,包括提示框、确认框、加载层等,可以自定义弹窗样式和内容。
树形控件(Tree):用于展示具有层级结构的数据,支持展开/折叠、选择节点等操作。
分页(Pager):用于分页展示大量数据,支持异步加载和自定义样式。
导航(Navbar):可创建导航菜单,支持水平和垂直布局,可以自定义样式和交互。
进度条(Progress):用于展示任务的进度,支持不同样式和动画效果。
图片轮播(Carousel):用于展示多张图片的轮播效果,支持自动播放、手动切换等。
日期选择(Date):提供了日期选择的功能,支持自定义日期格式和范围。
表单自动填充(Autocomplete):在表单中输入内容时,自动匹配已存在的选项。
这些在我们日步骤:常使用中都是非常频繁且适用的
🦁实用案例
🦁标签卡
步骤:
🦁参考官方文档(上方已标注)是否有控件/模块,支持完成对应的功能-静态
<div class="layui-tab" lay-filter="demo" lay-allowclose="true">
<ul class="layui-tab-title">
<li class="layui-this" lay-id="11">网站设置</li>
<li lay-id="22">用户管理</li>
<li lay-id="33">权限分配</li>
<li lay-id="44">商品管理</li>
<li lay-id="55">订单管理</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">内容1</div>
<div class="layui-tab-item">内容2</div>
<div class="layui-tab-item">内容3</div>
<div class="layui-tab-item">内容4</div>
<div class="layui-tab-item">内容5</div>
</div>
</div>
<div class="site-demo-button" style="margin-bottom: 0;">
<button class="layui-btn site-demo-active" data-type="tabAdd">新增Tab项</button>
<button class="layui-btn site-demo-active" data-type="tabDelete">删除:商品管理</button>
<button class="layui-btn site-demo-active" data-type="tabChange">切换到:用户管理</button>
</div>
🦁将静态选项卡转换成动态选项卡
🦁删减后再进行添加Js代码实现将静态选项卡转换成动态选项卡
//新增一个Tab项
function openTab(title,content,id){
element.tabAdd('demo', {
title: '新选项'+ (Math.random()*1000|0) //用于演示
,content: '内容'+ (Math.random()*1000|0)
,id: new Date().getTime() //实际使用一般是规定好的id,这里以时间戳模拟下
})
}
🦁将静态标签名变成实际菜单名
var element,layer,util,$;
layui.use(
['jquery', 'element', 'layer', 'util' ],
function() {
element = layui.element, layer = layui.layer, util = layui.util, $ = layui.$;
$
.ajax({
url : "permission.action?methodName=menus",
dataType : 'json',
success : function(data) {
console.log(data)
var htmlStr = '';
$.each(data,function(i, n) {
htmlStr += '<li class="layui-nav-item layui-nav-itemed">';
htmlStr += '<a class="" href="javascript:;">'
+ n.text
+ '</a>';
if (n.hasChildren) {
var children = n.children;
htmlStr += '<dl class="layui-nav-child">';
$.each(children,function(
idx,
node) { // 使用 children 进行遍历
htmlStr += '<dd><a href="javascript:;" onclick="openTab(\''+node.text+'\',\''+node.attributes.self.url+'\',\''+node.id+'\')">'
+ node.text
+ '</a></dd>'; // 生成子节点的HTML字符串
});
htmlStr += '</dl>'; // 注意闭合 <dl> 标签位置
}
htmlStr += '</li>'; // 注意闭合 <li> 标签位置
});
$("#menu").html(htmlStr);
element.render('menu');
}
})
});
🦁再次点击的选项卡会选中不会打开新的选项卡
在打开选项卡的基础上做一个判断并做一个切换选项卡的操作
function openTab(title,content,id){
// 新增一个 tab 项
var $node = $('li[lay-id="'+id+'"]');
if($node.length ==0){
element.tabAdd('demo', {
title:title //用于演示
,content: content
,id: id //实际使用一般是规定好的id,这里以时间戳模拟下
})
}
element.tabChange('demo',id);//切换选项卡
}
注:
中的demo对应的是
中的demo
在将静态数据变成动态数据时需要将前端代码改写成
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script src="static/js/index.js"></script>
<%@include file="/common/header.jsp"%>
</head>
<body>
<div class="layui-layout layui-layout-admin">
<div class="layui-header">
<div class="layui-logo layui-hide-xs layui-bg-black">layout
demo</div>
<!-- 头部区域(可配合layui 已有的水平导航) -->
<ul class="layui-nav layui-layout-left">
</ul>
<!-- 个人头像及账号操作 -->
<ul class="layui-nav layui-layout-right">
<li class="layui-nav-item layui-hide layui-show-md-inline-block">
<a href="javascript:;"> <img
src="//tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg"
class="layui-nav-img"> tester
</a>
<dl class="layui-nav-child">
<dd>
<a href="">Your Profile</a>
</dd>
<dd>
<a href="">Settings</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">
<div class="layui-side-scroll">
<!-- 左侧导航区域(可配合layui已有的垂直导航) -->
<ul id="menu" class="layui-nav layui-nav-tree" lay-filter="menu">
</ul>
</div>
</div>
<div class="layui-body">
<!-- 内容主体区域 -->
<div class="layui-tab" lay-filter="demo" lay-allowclose="true">
<ul class="layui-tab-title">
<li class="layui-this" lay-id="11">网站设置</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">内容1</div>
<div class="layui-tab-item">内容2</div>
<div class="layui-tab-item">内容3</div>
<div class="layui-tab-item">内容4</div>
<div class="layui-tab-item">内容5</div>
</div>
</div>
</div>
<div class="layui-footer">
<!-- 底部固定区域 -->
底部固定区域
</div>
</div>
<script>
//JS
</script>
</body>
</html>