layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用。
一、介绍
在使用layui之前,我们先要了解一下layui是什么?
我觉得用作者贤心的一句话来概括就好了:为后端程序员设计的前端框架。
更加详细的描述是:这是一个封装了各种css和js、Ajax等等的前端框架,其封装程度之高,有时甚至对程序员来说不大友好。但对于前端技术一般的人来说,layui不失为一个好的工具。
二、开始使用layui
使用方式:下载后导入项目,然后引用即可
<script th:src="@{/jquery-3.3.1.min.js}"></script> <script th:src="@{/layui/layui.js}"></script> <link rel="stylesheet" th:href="@{/layui/css/layui.css}" />
先要引用jquery,然后再引用layui.js和layui.css。
为什么一定要本地呢?没有CDN?
上面说了,layui封装得太“好”了,程序员的自主性受到限制,这个时候需要修改layui的源码,比如css的样式——这也是layui的正确用法,而不只是简单地使用。
layui的模块:layui是模块化的,包括form,layer,laydate,laypage等等模块,正是这些模块组成了完整的layui。使用layui的时候,需要指明自己使用的模块。
开始使用layui:
<script> layui.use(['mod1', 'mod2'],function(args){ var mo1 = layui.mod1 ,mo2 = layui.mod2; }); </script>
三、layui表单
下面以HTML中最常见的form表单来演示layui的使用。
html部分:
<fieldset class="layui-elem-field layui-field-title" style="margin-top:30px;"> <legend style="text-align:center;">注册新账户</legend> </fieldset> <form id="reform" class="layui-form layui-form-pane" th:action="@{/user/register.html}" method="POST"> <div class="layui-form-item"> <label class="layui-form-label">邮箱</label> <div class="layui-input-block"> <input type="text" name="email" lay-verify="email" placeholder="请输入" autocomplete="off" class="layui-input" /> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">用户名</label> <div class="layui-input-block"> <input type="text" name="name" lay-verify="required" placeholder="请输入" autocomplete="off" class="layui-input" /> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">密码</label> <div class="layui-input-block"> <input type="password" name="password" lay-verify="pass" placeholder="请输入密码" autocomplete="off" class="layui-input" /> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">重复密码</label> <div class="layui-input-block"> <input type="password" name="repassword" lay-verify="repass" placeholder="请输入密码" autocomplete="off" class="layui-input" /> </div> </div> <div class="layui-form-item"> <button class="layui-btn layui-btn-fluid" lay-submit="" lay-filter="demo1">注册</button> </div> <div style="text-align:center;margin-top:15px;"> <input type="checkbox" name="agree" lay-skin="primary" checked=""/> 我已阅读并同意 <a href="#" id="agreementLink">《隐私条款》</a> </div> </form>
javscript部分:
<!-- js for form input and submit --> <script> layui.use(['form'], function(){ var form = layui.form; //自定义验证规则 form.verify({ pass: [/(.+){6,12}$/, '密码必须6到12位'] ,repass:function(value){ var pvalue = $("input[name='password']").val(); if(pvalue!=value){ return "两次输入的密码不一致"; } } }); //监听提交 form.on('submit(demo1)', function(data){ var agreeChecked = data.field.agree; if(agreeChecked!="on"){ msg("未同意隐私条款"); return false;//阻止表单提交 } }); }); </script>
效果图:
四、layui弹出层
下面讲述一下弹出层,弹出可以说是一个很常见的东西了,但基础的HTML/JS只有丑陋的alert("")方法,layui包含了一个叫做layer的弹出层模块。
使用layer的两种方式:
一、像上面使用form模块一样,layui.use声明,然后在use后面的function里使用;
二、导入独立的layer模块文件,然后就可以直接使用;
关于第一种方式不予讨论,这里介绍一下第二种方式。
首先,从layer官网下载layer的文件,解压并放入自己的项目下,然后95d50663f3408e8847d7ff59ca2625022cacc6d41bbb37262a98f745aa00fbf0类似这样的形式引入layer.js文件。
Example:
function msg(msg){ //墨绿深蓝风 layer.alert(msg, { title:'消息' ,skin: 'layui-layer-molv' //样式类名 ,closeBtn: 0 },function(index){ layer.close(index);//关闭 }); }
效果图:
layer不仅仅可以弹出提示框,还可以做到一些有趣且实用的动态效果,甚至可以加载一个弹出的HTML界面出来。
五、layui文件上传
下面介绍一下layui的文件上传,即upload模块
<!-- 上传图片--> <div class="layui-tab-item"> <div class="layui-upload"> <button type="button" class="layui-btn layui-btn-normal" id="headButton"> <i class="layui-icon"></i>选择图片 </button> <button type="button" class="layui-btn" id="headAddButton">开始上传</button> </div> <div class="layui-inline layui-word-aux" style="margin-top:20px;"> <label>注意:支持jpg,png和gif格式,文件大小应小于10MB</label> </div> </div>
<!-- 文件上传 --> <script> layui.use('upload',function(){ var $ = layui.jquery ,upload = layui.upload; //选完文件后不自动上传 upload.render({ elem: '#headButton' ,url: getRootPath()+'/user/uploadPicture' ,size: 10*1024 //10*1024KB = 10MB ,accept: 'images' ,acceptMime: 'image/jpg,image/png,image/gif' ,auto: false ,bindAction: '#headAddButton' ,done: function(res){ msg(res.msg); //刷新头像地址 var resUrl = res.url; if(resUrl!=""){ document.getElementById("userImg").src=getRootPath()+ resUrl; } } }); }); </script>
后端(java-spring-controller类中):
@Autowired FileService fileService; @RequestMapping(path="/uploadPicture",method= {RequestMethod.POST}) @ResponseBody public Map<String,Object> uploadFile(@RequestParam("file")MultipartFile file,HttpServletRequest request){ Map<String,Object> map = new HashMap<String,Object>(); String path = fileService.uploadImg(file, "head");//service层保存文件 //返回值,必须按照这样写——要符合upload模块的回调接口才行 map.put("code", 0); //0表示成功 map.put("msg","上传成功"); map.put("data", ""); map.put("url", path); return map; }
upload上传接口和返回值:
//上传接口 upload.render({ elem: '#id' ,url: '/api/upload/' //必填项 ,method: '' //可选项。HTTP类型,默认post ,data: {} //可选项。额外的参数,如:{id: 123, abc: 'xxx'} }); //返回值 { "code": 0 ,"msg": "" ,"data": { "src": "http://cdn.layui.com/123.jpg" } }
效果图:
layui的upload模块能够在前端进行配置文件大小、格式、预览,还可以做到批量上传、重传功能。
六、layui分页
在网站中也经常会用到分页,后端的分页是容易实现的,但对于前端来说就不是那么理想了。layui提供了自己的分页模块——laypage。
<div id="allNewsDiv"></div> <div id="demo"></div>
layui.use(['element','laypage'], function(){ var element = layui.element ,laypage = layui.laypage; $.ajax({ url:getRootPath()+'/news/count' ,type:'GET' ,async:true //false表示非异步,即同步,即请求处理完毕后才能返回; ,data:{"page":1, "limit":10} ,dataType:'json' ,success:function(alldata){ var numbers = alldata.count; //总页数大于页码总数 laypage.render({ elem: 'demo' ,count: numbers//数据总数 ,first: '首页' ,last: '尾页' ,jump: function(obj){ $.ajax({ url:getRootPath()+'/news/list' ,type:'GET' ,async:true ,data:{"page":obj.curr, "limit":obj.limit} ,dataType:'json' ,success:function(data){ var shtml = getNewsContentHTML(data);//js处理数据并填充div document.getElementById("allNewsDiv").innerHTML=shtml; } }); } }); } }); });
如上,分页跳转的事件是在jump中进行的,在里面编写AJAX请求,通过jump的obj参数获得page和limit参数,然后在请求执行完毕并返回数据后进行处理即可。
七、layui数据表格
表格时常见的功能,但js拼接HTML表格算是一件比较繁琐且容易出错的事情。
<!-- team分页table --> <table class="layui-hide" id="teamTable" lay-filter="teamTool"> </table>
<script> layui.use('table',function(){ var table = layui.table;//模块声明 table.render({ elem:'#teamTable' ,method:'get' ,url:getRootPath()+'/team/admin/list' //返回一个List<TeamMember>的list ,cellMinWidth:80 ,cols:[[ {field:'id', title:'ID', sort:true} ,{field:'name', title:'姓名'} ,{field:'birth', title:'出生日期'} //这里的templet值时模板元素的选择器 ,{field:'position', title:'身份'} ,{field:'information', title:'个人信息'} ,{field:'right', title:'操作', toolbar:'#barDemo'} ]] ,page:true //开启分页 }); //监听工具条 table.on('tool(teamTool)', function(obj){ //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值" var data = obj.data; //获得当前行数据 var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值) var tr = obj.tr; //获得当前行 tr 的DOM对象 console.log("id:"+data.id); if(layEvent === 'detail'){ //查看 //do something layer.msg('ID:'+ data.id + ' 的查看操 } else if(layEvent === 'del'){ //删除 layer.confirm('确认删除人员信息?', function(index){ //do something layer.close(index); }); } else if(layEvent === 'edit'){ //编辑 //do something } }); }); </script> <!-- tools --> <script type="text/html" id="barDemo"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a> <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> </script>
效果图:
更多layui知识请关注layui框架。
以上是快速上手前端框架layui的详细内容。更多信息请关注PHP中文网其他相关文章!

以下为大家整理了前端UI框架 — layui的视频教程,不需要从迅雷、百度云之类的第三方网盘平台下载,全部在线免费观看。教程由浅入深,有前端基础的人就能学习,从安装到案例讲解,全面详细,帮助你更快更好的掌握layui框架!

如何利用Layui开发一个具有分页功能的数据展示页面Layui是一个轻量级的前端UI框架,提供了简洁美观的界面组件和丰富的交互体验。在开发中,我们经常会遇到需要展示大量数据并进行分页的情况。以下是一个利用Layui开发的具有分页功能的数据展示页面的示例。首先,我们需要引入Layui的相关文件和依赖。在html页面的<head>标签中加入以下代

如何使用Layui开发一个支持图片放大缩小的相册功能相册功能在现代的网页应用中非常常见,通过展示用户上传的图片,让用户能够方便地浏览和管理图片。为了提供更好的用户体验,一种常见的需求是支持图片的放大和缩小功能。本文章将介绍如何使用Layui框架开发一个支持图片放大缩小的相册功能,同时提供具体的代码示例。首先,确保您已经引入Layui框架的CSS和JS文件。您

如何利用Layui实现图片轮播图功能现如今,图片轮播图已经成为了网页设计中常见的元素之一。它可以使网页更加生动活泼,吸引用户的眼球,提升用户体验。在本文中,我们将介绍如何利用Layui框架来实现一个简单的图片轮播图功能。首先,我们需要在HTML页面中引入Layui的核心文件和样式文件:<linkrel="stylesheet"h

如何利用Layui实现图片拖拽和缩放效果在现代网页设计中,图片的交互效果成为增加网页活力和用户体验的重要手段。其中,图片拖拽和缩放效果是常见且受欢迎的交互方式之一。本文将介绍如何使用Layui框架实现图片拖拽和缩放效果,并提供具体的代码示例。一、引入Layui框架和相关依赖:首先,我们需要在HTML文件中引入Layui框架和相关依赖。可以通过以下代码示例引入

如何使用Layui开发一个支持文件上传和下载的资源管理系统引言:随着互联网的发展,数据资源的管理已经成为一项重要的任务。无论是企业内部的文档管理,还是个人的文件存储,都需要一个高效且易于使用的资源管理系统。Layui是一款轻量级的前端框架,具有简洁明了的设计以及丰富的组件库,非常适合用来进行资源管理系统的开发。本文将介绍如何使用Layui开发一个支持文

如何利用Layui实现图片反色和亮度调节功能引言:在前端开发中,经常会遇到需要对图片进行特效处理的情况。本文将介绍如何利用Layui框架实现图片反色和亮度调节功能,并提供具体代码实例供参考。一、Layui简介:Layui是一款优秀的前端UI框架,具有简洁、美观、易用等特点。它提供了丰富的前端组件,让开发者能够轻松搭建出精美的网站。二、准备工作:在开始之前,我

如何使用Layui框架开发一个支持实时通讯的在线客服系统概述:在线客服系统是现代企业提供与客户交流的重要渠道之一,而实时通讯是在线客服系统的关键技术之一。本文将介绍如何使用Layui框架开发一个支持实时通讯的在线客服系统,并提供具体的代码示例。一、准备工作安装Node.js:在开发环境中安装Node.js,并配置好相关环境。安装Layui:在项目中引入Lay


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

Dreamweaver Mac版
视觉化网页开发工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

记事本++7.3.1
好用且免费的代码编辑器