Layui的一点小理解(上)

  首先声明这是个人的一点理解,如有不对之处请指正,以下的例子有在官网上看到的,有的是自己写的。还是老规矩最后会附上官网的,如有不明白之处,请查看文档或留言。

  既然说Layui,当然要简单的介绍以下什么是layui啊!下面是官方的解释:

Layui 是一款采用自身模块规范编写的国产前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到API的每一处细节都经过精心雕琢,非常适合界面的快速开发。layui还很年轻,首个版本发布于2016年金秋,她区别于那些基于MVVM底层的UI框架,却并非逆道而行,而是信奉返璞归真之道,准确地说,她更多是为服务端程序员量身定做,你无需涉足各种前端工具的复杂配置,只需面对浏览器本身,让一切你所需要的元素与交互、从这里信手拈来。

Layui兼容除IE6/7以外的全部浏览器,并且多数结构支持响应式

其实说的简单点就是他是国产的,极其简单的一个框架。下面将会介绍几个简单的功能。及自己的心得。

  他的引用是非常简单的,我选择的是在页面中直接引用下载下来的文件,只要引用CSS文件和JS文件即可。

1 <link rel="stylesheet" href="./css/layui.css" media="all">
2 <script src="./layui.js"></script>

路径请自行更改。其中引用的js需要说明一下,我现在引用的是全部的JS,也就是各个模块都有,不用单独的去选择。在官网下载的文件中有个JS的文件夹,里面有各个模块的JS,如果你只是应用了layui 的一个或少数几个模块,可以自己单独引入!请看一下代码:

<script><!--这个script需要写在你用layui的js之后-->
layui.use([‘layer‘, ‘laypage‘, ‘element‘], function() {//这里面layui.use()是必须的,你要调用人家的东西,一定要遵守人家的规则;其中有两个参数,第一个是你要调用的模块,其中你调用的模块必须是你上面引用                                //js中有的,如果你很懒,就和我一样,直接调用全部封装好的JS

});
</script>

可以看到我总共调用了三个模块,所以我要把它写在数组中,如果你仅仅是调用了一个模块,那么你可以不用数组,直接用引号引起来就可以了。而后咱们要写的代码就要写在function里面了。

layui.use([‘layer‘, ‘laypage‘, ‘element‘], function() {
    var layer = layui.layer,
        laypage = layui.laypage,
        element = layui.element();
         //向世界问个好
        layer.msg(‘Hello World‘);
        //监听Tab切换
        element.on(‘tab(demo)‘, function(data) {
            layer.msg(‘切换了:‘ + this.innerHTML);
        });
        //分页
        laypage({
            cont: ‘pageDemo‘ //分页容器的id
                        ,
            pages: 12 //总页数
                        ,
            skin: ‘#008cee‘ //自定义选中色值
                        ,
            skip: true //开启跳页
                        ,
            jump: function(obj, first) {
                if(!first) {
                   layer.msg(JSON.stringify(obj.curr));
                }
            }
         });
});                             

这里主要是实现的三个功能,一个是弹窗提示,另外两个是监听tab切换和分页功能!其中的参数的作用在代码中已经标注,这里就不做详细的介绍了。

  还有就是一个alert功能的弹窗,我把它封装成了一个函数。

 1 function alert1() {
 2                     layer.open({
 3                          skin: ‘demo-class‘,
 4                          type:1,//加上这句话才能点击多次的时候有效,否则第二次点击的时候不能正确的弹出
 5                          area: ["300px","200px"],//弹窗的大小
 6                         content: $(‘#img‘),
 7                         //btnAlign: ‘c‘//控制下面两个按钮显示的位置
 8                         title: "这是弹出框的标题",
 9                         //btn: [‘确定‘, ‘取消‘],//这是弹出框的按钮
10                         shadeClose:true,//点击遮罩层同样能关闭弹窗
11                         yes: function(index, layero) {
12                             //按钮【按钮一】的回调
13
14                             console.log(JSON.stringify(layero))
15                             layer.close(index);//点击确定之后,需要这句话才能关闭
16                         },
17                         btn2: function(index, layero) {
18                             //按钮【按钮二】的回调
19                             console.log(JSON.stringify(layero))
20
21                             //return false 开启该代码可禁止点击该按钮关闭
22                         },
23                         btn3: function(index, layero) {
24                             //按钮【按钮三】的回调
25
26                             //return false 开启该代码可禁止点击该按钮关闭
27                         },
28                         cancel: function() {
29                             //右上角关闭回调
30
31                             //return false 开启该代码可禁止点击该按钮关闭
32                         }
33                     });
34                 }

你需要在你需要的地方调起函数就可以了。

介绍了这么多,发现少了一个地方就是HTML文档,所以就直接把所有的源码直接贴在下面,只要复制到本地,并且修改一下路径就可以了!

  1 <!DOCTYPE html>
  2 <html>
  3
  4     <head>
  5         <meta charset="utf-8">
  6         <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  7         <title>layui在线调试</title>
  8         <link rel="stylesheet" href="./css/layui.css" media="all">
  9         <style>
 10             body {
 11                 margin: 10px;
 12             }
 13
 14             body .demo-class .layui-layer-title {
 15                 background: #c00;
 16                 color: #fff;
 17                 border: none;
 18             }
 19
 20             body .demo-class .layui-layer-btn {
 21                 border-top: 1px solid #E9E7E7
 22             }
 23
 24             body .demo-class .layui-layer-btn a {
 25                 background: #333;
 26             }
 27
 28             body .demo-class .layui-layer-btn .layui-layer-btn1 {
 29                 background: #999;
 30             }
 31         </style>
 32     </head>
 33
 34     <body>
 35         <img id="img" style="display: none;" src="images/face/70.gif">
 36         <blockquote class="layui-elem-quote">
 37             温馨提示:如果最左侧的导航的高度超出了你的屏幕,你可以将鼠标移入导航区域,然后滑动鼠标滚轮即可
 38         </blockquote>
 39
 40         <div class="layui-tab layui-tab-card" lay-filter="demo" style="height: 300px;">
 41             <ul class="layui-tab-title">
 42                 <li class="layui-this">演示说明</li>
 43                 <li>标题一</li>
 44                 <li>标题二</li>
 45                 <li>标题三</li>
 46             </ul>
 47             <div class="layui-tab-content">
 48                 <div class="layui-tab-item layui-show">
 49                     在这里,你将以最直观的形式体验Layui!在编辑器中可以执行layui相关的一切代码。
 50                     <br>你也可以点击左侧导航针对性地试验我们提供的示例。
 51                 </div>
 52                 <div class="layui-tab-item">内容1</div>
 53                 <div class="layui-tab-item">内容2</div>
 54                 <div class="layui-tab-item">内容3</div>
 55             </div>
 56         </div>
 57         <div id="box_02">box_02</div>
 58         <div id="pageDemo"></div>
 59
 60         <script src="./layui.js"></script>
 61         <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
 62         <script>
 63             layui.use([‘layer‘, ‘laypage‘, ‘element‘], function() {
 64                 var layer = layui.layer,
 65                     laypage = layui.laypage,
 66                     element = layui.element();
 67
 68                 //向世界问个好
 69                 layer.msg(‘Hello World‘);
 70
 71                 //监听Tab切换
 72                 element.on(‘tab(demo)‘, function(data) {
 73                     layer.msg(‘切换了:‘ + this.innerHTML);
 74
 75                 });
 76
 77                 //分页
 78                 laypage({
 79                     cont: ‘pageDemo‘ //分页容器的id
 80                         ,
 81                     pages: 12 //总页数
 82                         ,
 83                     skin: ‘#008cee‘ //自定义选中色值
 84                         ,skip: true //开启跳页
 85                         ,
 86                     jump: function(obj, first) {
 87                         if(!first) {
 88                             layer.msg(JSON.stringify(obj.curr));
 89
 90
 91                         }
 92                     }
 93                 });
 94
 95                 function alert1() {
 96                     layer.open({
 97                          skin: ‘demo-class‘,
 98                          type:1,//加上这句话才能点击多次的时候有效,否则第二次点击的时候不能正确的弹出
 99                          area: ["300px","200px"],//弹窗的大小
100                         content: $(‘#img‘),
101                         //btnAlign: ‘c‘//控制下面两个按钮显示的位置
102                         title: "这是弹出框的标题",
103                         //btn: [‘确定‘, ‘取消‘],//这是弹出框的按钮
104                         shadeClose:true,//点击遮罩层同样能关闭弹窗
105                         yes: function(index, layero) {
106                             //按钮【按钮一】的回调
107
108                             console.log(JSON.stringify(layero))
109                             layer.close(index);//点击确定之后,需要这句话才能关闭
110                         },
111                         btn2: function(index, layero) {
112                             //按钮【按钮二】的回调
113                             console.log(JSON.stringify(layero))
114
115                             //return false 开启该代码可禁止点击该按钮关闭
116                         },
117                         btn3: function(index, layero) {
118                             //按钮【按钮三】的回调
119
120                             //return false 开启该代码可禁止点击该按钮关闭
121                         },
122                         cancel: function() {
123                             //右上角关闭回调
124
125                             //return false 开启该代码可禁止点击该按钮关闭
126                         }
127                     });
128                 }
129                 $(‘#box_02‘).click(function() {
130                     alert1();
131                 })
132             });
133         </script>
134     </body>
135
136 </html>

  如果你还嫌麻烦,那么请下载我的百度网盘,直接下载解压,然后再浏览器直接查看效果就可以了!

点这里

密码:wza4

时间: 2024-12-09 18:14:16

Layui的一点小理解(上)的相关文章

Java学习:动态代理的一点小理解

手动实现 之前的一篇讲IoC的博文提到了代理模式,事实上代理模式就是AOP实现的重要基石.但是上面的代码有一个显而易见的缺陷,也就是之前讲解反射内容时提到的:不具备动态性. 上面代码中的Server就像是反射理解博文中提到的工厂订单管理员一样,每增加一样菜系,就需要相应更新手上的菜单.类比反射特性,我们完全可以做到让服务员不需要手上拿着菜单来为顾客服务: // 服务员实现类 public class ServerImpl implements Server { // 采用组合的方式引入noodl

柯里化的一点小理解

假如说我有一个函数,这个函数只有一个参数,这个参数是只有一个参数的函数,比如说 def f1(p: (Int) => String) { println(p(5)) } def p1(x: Int): String = { (x + 10).toString } //执行函数 f1(p1) 这时我们另外一个函数是这样的 def p2(x:Int,y:Int):String={ (x+y).toString } 这种情况下,f1将无法调用p2,参数不匹配.但如果将p2改造一下呢?改造好的函数我们设

python关于装饰器的一点小理解

越来越感觉,对于一些术语,真的不能看了名字就想着用自己的 语言/想法 去试着解释,比如socket/套接字,再比如装饰器,仅凭字面意思,很难理解的,反而会把你带到坑里去 def f1(fn): def action(): return "<a>"+fn()+"</a>" return action @f1 def test(): return "is test" print test() 运行结果 <a>is

主仆模式的一点小理解

主从模式根据名字来说就知道,拥有一主一从.对他的操作就有主有次.这种模式主要有两部分组成,主设备和从设备.主设备组件在相同的设备组件中分配工作,并计算最终结果,而这些结果是以后从设备返回的. 主从模式幼教主仆模式,这种模式的核心思想试讲一个原始的任务,变为不同的子任务,就像一个主人把任务分配给自己的多个仆人一样进行完成,当仆人完成各自的子任务之后再交还结果给自己的主人,主人再把所有仆人的结果整合到一起,得到一个真正的综合结果,这就是大概的运行思路,但是要仆人进行运算就得给仆人时间和场地,所以程序

8-22发现的一点小问题(在“引用”上出的问题)

今天写程序是发现了一点小纰漏: 程序的大体结构如下: Public class act extends Activity { //保存数据的list Private ArrayList<T> listInAct = null; Private ListView listView = null; } Public void onCreate(Bundle b){ listInAct = new ArrayList<T>(); .............................

做预解释题的一点小方法和小技巧

在JavaScript中的函数理解中预解释是一个比较难懂的话题.原理虽然简单,寥寥数言,但其内涵却有深意,精髓难懂.如何在轻松活跃的头脑中将它学会,现在针对我在学习中的一点小窍门给大家分享一下,希望能给大家一些帮助: 万事需遵循"原理"--"预解释"无节操和"this"指向:(可先看例题解析然后结合原理进行学习) (感谢蕾蕾老师给归纳的预解释无节操原理:) 如果函数传参数则先于以下执行,就相当于在函数私有作用域下var了一个变量:根据作用域原理,

新闻发布的一点小总结

经过一段时间的学习,完成了新闻发布的基础功能,进行一点小总结,方便日后回顾.下面是我的一点小总结,不足之处请勿见笑... 我们想要完成一个新闻发布,首先要使其能够成功发布,并且让它能够实现添加.删除.修改.查询.上传.下载等功能.我们还调用AJAX功能查看输出为XML.JSON格式的新闻内容.为完成以上功能,我们首先要进行jdk.tomcat.eclipse的安装和配置.1.各软件的安装和配置1.1.jdk的安装和配置: 1.1.1.下载jdk:下载地址:http://www.oracle.co

关于学习python的一点小建议

Python是最容易入门的编程语言,没有之一.如果初学者接触的第一门语言是C或者C++,对他们来说最难的不是语法,而是容易出现内存泄漏.指针等问题.有时候排查这些问题对初学者的打击很大,尤其是没掌握排查BUG技巧时. 如果初学者接触的第一门语言是Python,学习曲线则会平滑得多,掌握一些基本语法和Python内置的数据结构,已经可以上手写一些小工具或者小型应用.这对初学者来说,非常重要.因为学习的过程是一个突破舒适区的过程,会面临很多痛苦,如果学习过程得不到激励,很容易半途而废,类似我们开玩笑

Lichee (六) 配置内核时的一点小优化

我们在分析<Lichee(二) 在sun4i_crane平台下的编译 >的时候,居然没有一个步骤是在配置内核 make ARCH=arm menuconfig 仔细的读过的代码的会发现,在build_kernel有这么一段话 if [ ! -e .config ]; then echo -e "\n\t\tUsing default config... ...!\n" cp arch/arm/configs/sun4i_crane_defconfig .config fi