组件实例
1、弹出层
1、使用方式
模块加载名称:layer,独立版本:https://layer.layui.com/
第一种作为独立组件使用,在https://layer.layui.com/下载组件包,在需要使用的页面加载1.8以上的jquery的js和layer.js文件
独立使用需要用到Bootstrap的jquery的js文件
<link rel="stylesheet" type="text/css" href="layui-v2.5.7/layui/css/layui.css">
还需要引入jquery的js文件
<script src="layui-v2.5.7/layui/layui.js" type="text/javascript" charset="utf-8"></script>
第二种layui模块化使用
只需要引入layui的css于js文件,在script中使用layui,use()加载模块
<script type="">
layui.use("layer",function() {
var layer=layui.layer;
<!--弹出的文本-->
layer.msg("你好")
})
</script>
2、基础参数
类型:Number,默认:0
layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)。 若你采用*layer.open({type: 1})*方式调用,则type为必填项(信息框除外)
1、 type :0, 弹出的信息框,title:“XXXX”,如果不填,会默认显示“消息”,如果不想显示可一设置为title:“false”, title:[] 可以设置样式
`<script type="">
layui.use("layer",function() {
var layer=layui.layer;
layer.open({
type :0,
title:"false",
title:["?????","color:red"],
content:"?????"
});
})
</script>
2、 type :1,弹出文本框
layer.open({
type :1,
title:"false",
content:"<div style='height: 333px; width: 444px;'>阿伟你又在打游戏哦</div>"
});
3、type :2,弹出的是URL
layer.open({
type :2,
title:"",
content:"https://www.bilibili.com/",area:"500px"
});
area 宽高
- content:“https://www.bilibili.com/”,area:“500px” ,宽度为500,高度自适应
- 也可以使用数组的方式 area:[“1000px”,“800px”]
4、加载层
layer.open({
type :3,
title:"",
content:"?????"
});
5、tips层 在元素旁边弹出
在 id=“sp” 的元素旁边弹出
layer.open({
type :4,
title:"",
content:["??????","#sp"]
});
<spen id="sp">hanser</spen>
area - 宽高
类型:String/Array,默认:‘auto’
在默认状态下,layer是宽高都自适应的,但当你只想定义宽度时,你可以area: ‘500px’,高度仍然是自适应的。当你宽高都要定义时,你可以area: [‘500px’, ‘300px’]
icon - 图标。信息框和加载层的私有参数
类型:Number,默认:-1(信息框)/0(加载层)
信息框默认不显示图标。当你想显示图标时,默认层可以传入0-6,如果是加载层,可以传入0-2。
layer.alert('阿伟已经死了',{icon:1});
layer.alert('阿伟已经死了',{icon:2});
layer.alert('阿伟已经死了',{icon:3});
layer.alert('阿伟已经死了',{icon:4});
layer.alert('阿伟已经死了',{icon:5});
layer.alert('阿伟已经死了',{icon:6});
layer.load();参数为0-2 为加载时的效果
3、示例
多次选择退出效果
layer.msg("你想要退出吗?",{
<!-- time : 0 表示不会自己消失-->
time :0,
<!--两个按钮-->
btn:["确定退出","我点错了"],
yes: function(index) {
layer.msg("你想要退出吗?",{
time :0,
btn:["确定退出","我点错了"],
yes: function(index) {
layer.msg("你想要退出吗?",{
time :0,
btn:["确定退出","我点错了"],
yes: function(index) {
layer.close(index);
layer.msg("好吧,你赢了",{
icon:6,
btn:["要不在考虑下?"]
})
}
})
}
})
}
});
layer.msg("这是常用的弹出层")
layer.msg("这是会定时关闭的弹出层",{inco : 6});
layer.msg("玩命加载中",function() {
layer.msg("???????");
});
效果非常多
2、日期与时间选择
layui.laydate
模块加载名称:laydate,独立版本:http://www.layui.com/laydate/
<div class="layui-inline" style="margin-left: 10%;">
<input type="text" class="layui-input" id="datel">
</div>
<script type="text/javascript">
//加载模块
layui.use("laydate",function(){
var laydate=layui.laydate;
//加载laydate实例
laydate.render({
elem:"#datel"
});
});
</script>
基础参数选项
通过核心方法:laydate.render(options) 来设置基础参数,也可以通过方法:laydate.set(options) 来设定全局基础参数.
elem - 绑定元素
type - 控件选择类型
类型:String,默认值:date
<script type="text/javascript">
//加载模块
layui.use("laydate",function(){
var laydate=layui.laydate;
//加载laydate实例
laydate.render({
elem:"#datel" //日期选择器
});
laydate.render({
elem:"#date2",
type:"year" //年选择器
});
laydate.render({
elem:"#date3",
type:"month" //年月选择器
});
laydate.render({
elem:"#date4",
type:"time" //时间选择器
});
laydate.render({
elem:"#date5",
type:"datetime" //年月日,时分秒
});
});
</script>
format - 自定义格式
类型:String,默认值:yyyy-MM-dd
通过日期时间各自的格式符和长度,来设定一个你所需要的日期格式。layDate 支持的格式如下:
格式符 | 说明 |
---|---|
yyyy | 年份,至少四位数。如果不足四位,则前面补零 |
y | 年份,不限制位数,即不管年份多少位,前面均不补零 |
MM | 月份,至少两位数。如果不足两位,则前面补零。 |
M | 月份,允许一位数。 |
dd | 日期,至少两位数。如果不足两位,则前面补零。 |
d | 日期,允许一位数。 |
HH | 小时,至少两位数。如果不足两位,则前面补零。 |
H | 小时,允许一位数。 |
mm | 分钟,至少两位数。如果不足两位,则前面补零。 |
m | 分钟,允许一位数。 |
ss | 秒数,至少两位数。如果不足两位,则前面补零。 |
s | 秒数,允许一位数。 |
laydate.render({
elem: '#date6'
,format: 'yyyy年MM月dd日' //可任意组合
});
与原本的样式对比:
value - 初始值
类型:String,默认值:new Date()
支持传入符合format参数设定的日期格式字符,或者 new Date()
//传入符合format格式的字符给初始值
laydate.render({
elem: '#date7'
,value: '2018-08-18' //必须遵循format参数设定的格式
});
//传入Date对象给初始值
laydate.render({
elem: '#date8'
,value: new Date(1534766888000) //参数即为:2018-08-20 20:08:08 的时间戳
});
3、分页
layui.laypage
模块加载名称:laypage ,指向一个用于存放分页的容器,通过服务端得到一些初始值,即可完成分页渲染:
<div id="page"></div>
<script>
//加载laypage模块
layui.use("laypage",function(){
var laypage =layui.laypage;
//加载实例
laypage.render({
elem:"page", //这里不需要加#号,elem绑定的是容器的id属性值,不需要加#
count:100, //一般是从服务器获取,这里写死
})
})
</script>
基础参数
参数选项 | 说明 | 类型 | 默认值 |
---|---|---|---|
elem | 指向存放分页的容器,值可以是容器ID、DOM对象。如: 1. elem: ‘id’ 注意:这里不能加 # 号 2. elem: document.getElementById(‘id’) | String/Object | - |
count | 数据总数。一般通过服务端得到 | Number | - |
limit | 每页显示的条数。laypage将会借助 count 和 limit 计算出分页数。 | Number | 10 |
limits | 每页条数的选择项。如果 layout 参数开启了 limit,则会出现每页条数的select选择框 | Array | [10, 20, 30, 40, 50] |
curr | 起始页。一般用于刷新类型的跳页以及HASH跳页。如:codelayui.code//开启location.hash的记录laypage.render({ elem: 'test1' ,count: 500 ,curr: location.hash.replace('#!fenye=', '') //获取起始页 ,hash: 'fenye' //自定义hash值}); | Number | 1 |
groups | 连续出现的页码个数 | Number | 5 |
prev | 自定义“上一页”的内容,支持传入普通文本和HTML | String | 上一页 |
next | 自定义“下一页”的内容,同上 | String | 下一页 |
first | 自定义“首页”的内容,同上 | String | 1 |
last | 自定义“尾页”的内容,同上 | String | 总页数值 |
layout | 自定义排版。可选值有:count(总条目输区域)、prev(上一页区域)、page(分页区域)、next(下一页区域)、limit(条目选项区域)、refresh(页面刷新区域。注意:layui 2.3.0 新增) 、skip(快捷跳页区域) | Array | [‘prev’, ‘page’, ‘next’] |
theme | 自定义主题。支持传入:颜色值,或任意普通字符。如: 1. theme: ‘#c00’ 2. theme: ‘xxx’ //将会生成 class=“layui-laypage-xxx” 的CSS类,以便自定义主题 | String | - |
hash | 开启location.hash,并自定义 hash 值。如果开启,在触发分页时,会自动对url追加:#!hash值={curr} 利用这个,可以在页面载入时就定位到指定页 | String/Boolean | false |
<script>
//加载laypage模块
layui.use("laypage",function(){
var laypage =layui.laypage;
//加载实例
laypage.render({
elem:"page", //这里不需要加#号,elem绑定的是容器的id属性值,不需要加#
count:100, //总数量,一般是从服务器获取,这里写死
limit :5, //表示每页5条
limits :[5,10,20,30], //每页条数选择,必须要加上layout
layout:["prev","page","next","limit","count"], //自定义的排版
groups:10 , //连续显示的页码数
prev :"不返回一下看看吗?" , //上一页
next :"不要在点了,已经到最里面了啦", //下一页
})
})
</script>
jump - 切换分页的回调
当分页被切换时触发,函数返回两个参数:obj(当前分页的所有选项值)、first(是否首次,一般用于初始加载的判断)
laypage.render({
elem: 'page1'
, count: 70 //数据总数,从服务端得到
, jump: function (obj, first) {
//obj包含了当前分页的所有参数,比如:
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
console.log(obj.limit); //得到每页显示的条数
//首次不执行
if (!first) {
//do something
}
}
});
在控制台上打印当前页,和每页显示的条数