从酒店管理系统到智能门锁及其现在的资源共享平台,layui框架,我们团队用的比较多的就是这个layui弹出层。

layui弹出层,除了页面iframe层我们比较常用还有就是表单校验和其他相关的友好提示信息。

通常比较常用的方式是layui+jQuery,layui主要引用layui相关的js和css文件,jQuery的话,通常就是两个版本,压缩版和源码版,压缩版就像我们Java没有用maven那样,就是一个一个的jar文件,如果我们想看源码,就必须找到对应的源文件。源文件通常情况下比jar包式的文件要大的多。就好比我们部署web工程,特别是使用maven项目的时候,通过打包,将war项目打成war包,由上百兆变成十几兆。

当然了,使用压缩版,且建议使用压缩版,生产环境一定要使用压缩版,压缩版压缩版,看这词,肯定和源码版相比,体积要小的多。

目前很多企业的软件,很多都包含这么几端,浏览器端,客户端或者电脑端等,无论是浏览器端、客户端、电脑端,它们都要用的一个玩意,换言之遵守一个规则,即HTTP请求的规则。

《高性能网站建设指南》中提出了关于网站性能优化十个点,其中就包括减少Http请求,而且我认识的朋友中,有不少他们公司要么是使用CDN将所有的静态资源放在CDN上,当然了,有的放在CDN上是几个文件的压缩版,比如相关的4到5个css文件,但是很多页面都引用,而且它并没有很多变动,基本不动,这种情况我们使用YUI压缩技术或者其他压缩技术,将其压缩成一个css文件,当然文件体积比较大,但是相对于请求4到5个css静态文件,也就是请求4到5个http请求来说,相对比请求一个,响应时间要少的多,响应时间一少,用户体验也就好了。而且对于web性能方面还是很有帮助的。

当然了,体积大占用的带宽也会比较大,所有这也是建议使用压缩版。体积小,占用带宽少,功能也并无差别。当然了,像个人学习或者测试环境可以使用源码版的。

layui的弹出层也可以帮助我们性能优化,它可以使页面上的html相关的标签减少,从而使整个文件减少,这样一来html文件虽然多,但是并不是全部在一个页面上,要知道很多iframe在一块,真的不利于维护,或者维护起来比较困难,通过layui倒可以将一些比如添加的form表单或者是增加编辑信息之类的抽取出来为一个界面,利于维护,也利于性能。

下面说说,layui我常用的几个弹出层:

首先贴一下layui的官网:http://www.layui.com/

layui的下载和文档上面都有,对于一些公司技术调研方面,通常会比较以下:

(1)社区是否活跃;

(2)文档是否丰富;

(3)风险是否可控;

layui基本满足以上原则,社区很活跃,文档也非常丰富,至于风险,很多开源项目和我认识的朋友们,他们公司也在用这个框架,既然这么多人都在用,那么我想风险方面一定也是可控的。

注意一点:

一定要在layui.use('layer',function(){}函数作用域内加上var layer=layui.layer

就好像你要使用jQuery的ajax那样,加上$.ajax或者$.post、$.get

$相当于是jQuery,只是给它起了个别名

这样说好像有点欠妥,再补充一点,就好比Java或者js,你要使用这个变量并给其赋值,前提是必须有,这个“有”,可以理解为声明。

Java对于变量,流行这样一句,先声明再赋值,边声明边赋值。js同样如此。

再打比方:

比如Java类中,写了多个方法,那么你如果可以调用这个方法呢?出来将方法用static修饰之外,以类名调用方法,还有就是实例化,换言之就是New

layui也是这个道理,你如果想要用它的弹出层相关的一系列方法,就必须要声明赋值才行。不然就无法调用。

代码讲解

1.  layer.msg

 layui.use('layer', function(){
var layer = layui.layer; layer.msg('消息001');
});

这个通常用于消息提示,比如退房推送,比如做酒店系统时,有人退房了,通过它提醒酒店店长及其相关人员,说某某在某时刻退房了,这时收到通知就可以通知对应的清洁人员去打扫,当然了,现在手机发短信的形式非常流行,至于退房推送不必通过layer.msg来提示,不过作为后台系统而言,有人退房的话,经理或者其他的管理人员,需要及时在web界面上看到,这时layer.msg就可以起到作用。

当然了,也可以用于表单校验。

              layer.msg('参数自定义', {
time: 1500, //1.5s后自动关闭
btn: ['明白了', '知道了', '哦']
});

这个可以让人联想到,比如你的好友评论你的文章或者你的好友上线下线,又或者某某个点赞了你的说说等,直接就会弹出来,当然了比如中说的就是事件,当然得触发事件才行。不然的话就成死循环了。

time这个属性在这里的作用是信息时间定义,就是msg显示在屏幕上多长时间,不写默认是2秒。根据自己需求而定。

2.layer.open

 layui.use('layer', function(){
var layer = layui.layer; layer.open({
type: 2,
title: 'iframe',
fix: false,
maxmin: true,
shadeClose: true,
shade: 0.8,
area: ['1000px', '700px'],
content: 'https://www.baidu.com',
end: function () {
location.reload();
}
});
});

这个通常的可以用于减少HTML大量的标签,这让我想到了Bootstrap,Bootstrap的响应式,我是没话说,满意+非常满意,但是它的那个模态框我不喜欢,有的时候,我的界面需要好几个模态框这样的,但是如果加上了,即便是有注释,简单的说吧,如果div嵌套的少,那还好说,如果div加上个选项卡,选项卡里面又套div,而且又是好几个,这样就不能使用模态框了,当然bootstrap实现这个也很简单,但是对于页面来说,加入了很多HTML,即便有注释,也会使页面的复杂性增加,不利于维护,这时layui的功效来了,通过layer.open可轻松的将模态框分离为一个界面这样页面不利于维护的问题也就解决了。而且用户体验也非常好。

    layui.use('layer', function(){
var layer = layui.layer; layer.open({
type: 1,
area: ['200px', '100px'],
content: '<p align="center">消息003</p>' //这里content是一个普通的String
});
});

layer..open的type有5种类型:

0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)

我个人用的比较的还是信息框和页面层及其iframe层,当然了加载层也用,至于tips层基本没用过。没用过也不能说没有用。

3.lay.alert

layui.use('layer', function(){
var layer = layui.layer; layer.alert('test', {icon: 1});
});

这个可以说是alert强化版本,alert在原始的js中也就是起到提示信息的作用,比如表单校验就比较常用。

4.layer.prompt

layer.prompt(function(value, index, elem){
alert(value); //得到value
layer.close(index);
});
layer.prompt({
formType: 2,
value: '初始值',
title: '请输入值',
area: ['800px', '350px'] //自定义文本域宽高
}, function(value, index, elem){
alert(value); //得到value
layer.close(index);
});

提示用户输入的提示框,和原本的js中的prompt一样。只是功能更强大了。

通常可以应用于用户评论文章

5.layer.tab

layer.tab({
area: ['600px', '300px'],
tab: [{
title: 'TAB1',
content: '内容1'
}, {
title: 'TAB2',
content: '内容2'
}, {
title: 'TAB3',
content: '内容3'
}]
});

选项卡就不说了,之前提到过,layer.tab+layer.open结合起来更强大。

小结:

框架,无论是前端框架或者后端框架,框架的目的只有一个更好更快更方便。

这与奥林匹克的格言:“更快、更高、更强”不谋而合。

layui弹出层之应用实例讲解的更多相关文章

  1. Layui 弹出层组件——layer的模块化开发实例应用

    Layui 弹出层组件——layer的模块化开发实例应用 1.首先在package.json中引入layer组件依赖 2.在源码中应用这个依赖 3.在源码中编写代码应用此组件 4.效果验证:点击日历上 ...

  2. Layui弹出层、日期和时间选择、即时通讯、分页

    Layui弹出层.日期和时间选择.即时通讯.分页 弹层组件文档 - layui.layer 对于弹出层的感觉是:layer 至今仍作为 layui 的代表作,她的受众广泛并非偶然,而是这数年来的坚持. ...

  3. layui弹出层回调的使用

    <%@page language="java" contentType="text/html; charset=UTF-8"%> <%@ in ...

  4. layer/layui弹出层插件bug

    <button class="layui-btn" lay-submit lay-filter="formDemo" id="layui-btn ...

  5. Layui弹出层详解

    今天空了学习一下弹出层 还是一步步展示把 首先,layer可以独立使用,也可以通过Layui模块化使用.我个人一直是用的模块化的 所以下面素有的都是基于模块化的. 引入好相关文件就可以开始啦  今天放 ...

  6. adminlte+layui框架搭建3 - layui弹出层

    在amdinlte首页引入layui.js 和layui.css后添加代码 <script> layui.use(['layer'], function () { var layer = ...

  7. layui弹出层处理(获取、操作弹出层数据等)

    要点: 字符串被渲染为弹窗层之后,回自动转换为DOM,可以使用jq进行各种操作 <!DOCTYPE html> <html> <head> <meta cha ...

  8. js弹出层的写法实例

    点击后弹出界面,通过判断浏览器长宽自动设定页面宽度和登陆页面位置. <style> /*遮罩层 弹出层*/ .mask { width: 100%; background-color: r ...

  9. layui弹出层基础参数

    一.type-层类型 类型:Number  默认为0(信息框); 1(页面层),可以在页面添加HTML内容 2(iframe层) 3(加载层)加载时显示的弹出框 4(tips层) 需要绑定ID就不展示 ...

随机推荐

  1. wcf和webapi(转)

    WCF 1.这个也是基于SOAP的,数据格式是XML 2.这个是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ. ...

  2. THUSC2017 游记

    你若安好,便是晴天. Day 0 中午就要出发了,上午浮躁的不行,根本写不下题去. 到了火车站之后发现教练和lyc和ztc在4车靠近5车的那一边,然而我在5车靠近4车的那边,尴尬…… 本来是想着上了火 ...

  3. input文字垂直居中和按钮对齐问题,兼容IE8

    1.盒子模型问题:请CSS重置 2.按钮不对齐:请浮动或者vertical-align:middle;然后计算宽高,使其对齐 : 3.IE8文本不居中:line-height属性     注意:IE8 ...

  4. RESTful API的十个最佳实践

    WebAPI在过去几年里非常的盛行,我们很多以往的技术手段都慢慢的转换为使用WebAPI来开发,因为它的语法简单规范化,以及轻量级等特点,这种方式收到了广泛的推崇. 通常我们使用RESTFul(Rep ...

  5. 三、vue如何配置路由 、获取路由的参数、部分刷新页面、缓存页面

        1.路由配置:所有的启动文件都在最初始的main.js文件里面,这个文件中首先需要引入: 2.路由文件配置说明: 3.如何获取页面url的参数? this.$route.query 4.页面之 ...

  6. null的专栏:https://blog.csdn.net/google19890102

    null的专栏:https://blog.csdn.net/google19890102 csdn博客专栏:https://blog.csdn.net/column.html

  7. c# 设计模式 之:装饰模式

    一.引言 在软件开发中,我们经常想要对一类对象添加不同的功能,例如要给手机添加贴膜,手机挂件,手机外壳等,如果此时利用继承来实现的话,就需要定义无数的类,如StickerPhone(贴膜是手机类).A ...

  8. Oracle EBS 系统仅存在英文的环境

    系统管理员 应用服务器 adadmin 编译

  9. js判断状态

    '<input type="radio" class="danxuan" name="danxuan" code="'||v ...

  10. django 实用工具dj-database-url 快速配置数据库

    dj-database-url Github>>> django快速配置多种数据库 $ pip install dj-database-url Configure your data ...