layui弹出层之应用实例讲解

摘要:
从酒店管理系统到智能门锁及其当前的资源共享平台,我们的团队使用了layui框架。除了页面iframe层之外,我们经常在layui弹出层中使用表单验证和其他相关的友好提示信息。除了静态修改方法、使用类名调用方法和实例化之外,换句话说,Newlayui是相同的。如果要使用与其弹出层相关的一系列方法,则必须声明赋值。

从酒店管理系统到智能门锁及其现在的资源共享平台,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弹出层之应用实例讲解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ES入门 (5) 语法(3)DML(2)映射操作 创建映射/查看映射/索引映射关联/微信企业号获取OpenID过程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iframe嵌套页面中的跳转

简单说一下场景。 假设有A、B、C和D四个JSP页面,D通过iframe嵌套在C中,C通过iframe嵌套在B中,B通过iframe嵌套在A中。 然后现在在D中编写JavaScript代码跳转页面。 在本页面跳转(D页面所在的iframe中跳转) window.location.href = 'http://t.zoukankan.com/要跳转的页面路径...

Django学习笔记之安全

CSRF攻击 CSRF攻击概述 CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。其他安全隐患,比如 SQL 脚本注入,跨站域脚本攻击等在近年来已经逐渐为众人熟知,很多网站也都针对他们进行了防御。然而,对于大多数人来说,CSRF 却依然是一个陌生的...

在html页面中引入另一个html页面

我们在使用html编写一个网站的时候,通常情况下头部和尾部是相同的,如果一个网站的每个页面都把这些代码写一遍,不仅浪费时间,还显得重复代码很多,所以此时把重复的页面单独摘出来,在用到的时候从外部直接引进去,就能节省很多时间,减少很多代码。 在这里,有好几种引入html文件的方式,不过每种都是有利有弊,需要根据需要自行选择 如果有些浏览器本地实现不了,那么放...

python selenium 基本常用操作

 最近学习UI自动化,把一些常用的方法总结一下,方便自己以后查阅需要。因本人水平有限,有不对之处多多包涵!欢迎指正! 一、xpath模糊匹配定位元素 武林至尊,宝刀屠龙刀(xpath),倚天不出(css),谁与争锋  学会了xpath,妈妈再也不用担心我定位不到元素啦 ^_^ # coding:utf-8 import time from seleniu...

(转)JS window对象的top、parent、opener含义

1.top    该变更永远指分割窗口最高层次的浏览器窗口。如果计划从分割窗口的最高层次开始执行命令,就可以用top变量。 2.opener opener用于在window.open的页面引用执行该window.open方法的的页面的对象。例如:A页面通过window.open()方法弹出了B页面,在B页面中就可以通过opener来引用A页面,这样就可以通...

三谈Iframe自适应高度【转】

为什么是三谈 为什么是三谈呢?一是因为这真的是一个被说烂的话题,二是因为太师傅在n年前就写过这篇再谈iframe自适应高度。之所以再提该问题,是因为之前项目中确实遇到了这个问题的方方面面,有必要总结一下。希望对各位有帮助,有错误请指正。 同域、子页面高度不会动态增加 这种情况最简单,直接通过脚本获取字页面实际高度,修改iframe元素高度即可。但有二点必...