layer弹层组件之移动版
简介
layer弹层组件分移动版和PC版,这边主要讲的是移动版的layer,PC版的后续再进行补充。移动版是为移动设备量身定做的弹层UI,并且完全独立于PC版的layer。与PC版的layer不同的是,移动版的layer只提供一个核心调用方法,即layer.open(options)
,通过对参数options
进行设置来实现各种不同的弹层。
快速上手
第一步,下载。要去官网下载layer的相关文件,主要是layer.js
文件,layer.css
文件可以根据需要引入,但是layer.js
文件是必需的。
第二步,引入。将layer的相关文件引入项目中,这里需要注意的是,不能去挪动layer里面的文件结构,因为它们是不可拆散的组合,直接整个引入就可以。由于layer是基于jQuery的,在引入layer.js
文件之前,必须先引入jQuery1.8或以上版本。
第三步,使用。下面是一个简单的layer弹层例子。
1 | <!doctype html> |
参数
这里所谈到的参数指的就是核心接口layer.open(options)
中的options。
type
type参数用于设置弹层的类型。其类型为Number
型,默认值为0
(0表示信息框,1表示页面层,2表示加载层)。
1 | type: 1 |
content
content参数用于设置弹层内容。其类型为String
型,这个参数为必选参数。
1 | content: 'layer弹层组件' |
title
title参数用于设置弹层标题。其类型为String
型或Array
型,默认值为空
,值可以为字符串或者数组,为空则不显示。
1 | //格式 |
time
time参数用于控制自动关闭层所需秒数。其类型为Number
型,默认不开启,支持整数和浮点数。
1 | time: 5 //5秒后关闭 |
style
style参数用于设置自定义层的样式。其类型为String
型。
1 | style: 'border:none; background-color:#78BA32; color:#fff;' |
skin
skin参数用于设定弹层显示风格。其类型为String
型,目前支持配置footer
(即底部对话框风格)、msg
(普通提示)两种风格。
1 | skin: 'footer' |
className
className参数用于自定义一个css类。其类型为String
型,用于自定义样式。自定义一个css类后,就可以在css里面通过设置这个类的样式来控制该弹层的风格。
1 | className: 'modal' |
btn
btn参数用于设置按钮。其类型为String
型或Array
型,不设置则不显示按钮。如果只需要一个按钮,则btn: '按钮'
,如果有两个,则btn: ['按钮一', '按钮二']
。
1 | //设置两个按钮 |
anim
anim参数用于设置动画类型。其类型为String
型或Boolean
型,可支持的支持两种动画配置scale
(默认)和up
(从下往上弹出),如果不开启动画,设置false
即可。
1 | anim: 'up' |
shade
shade参数用于控制遮罩展现。其类型为String
型或Boolean
型,默认为true
,显示遮罩,并且可以自定义遮罩风格。
1 | shade: 'background-color: rgba(0,0,0,.6) ' //遮罩的颜色以及透明度 |
shadeClose
shadeClose参数用于设置点击遮罩时是否关闭层。其类型为Boolean
型,默认为true
,即点击遮罩时关闭层。
1 | shadeClose: false //点击遮罩时不关闭层 |
fixed && top
fixed参数用于设置是否固定层的位置,需要与top参数一起使用。其类型为Boolean
型,默认为true
,不固定层的位置。而top参数用于控制层的纵坐标,其类型为Number
型,默认为无
,一般情况下不需要设置,因为层会始终垂直水平居中,只有当fixed: false
时top才有效。
1 | fixed : false, |
success && end
success参数用于设置层成功弹出层的回调,该回调参数返回一个参数为当前层元素对象。其类型为Function
型。end参数与success参数用法类似,只是它刚好与success参数相反,是用于设置层彻底销毁后的回调函数。
1 | //格式 |
yes && no
yes参数用于设置点击确定按钮触发的回调函数,返回一个参数为当前层的索引。其类型为Function
型。no参数与yes参数用法类似,只是它刚好与yes参数相反,用于设置点击取消按钮触发的回调函数。
1 | //格式: |
其它内置方法/属性
layer.v
layer.v用于返回当前使用的layer mobile版本号。
1 | yes: function(index){ |
layer.close(index)
layer.close(index)用于关闭特定层,index为该特定层的索引。
1 | yes: function(index){ |
layer.closeAll()
layer.closeAll()用于关闭页面所有layer的层。
1 | yes: function(index){ |
实例
信息框
1
2
3
4layer.open({
content: '我是layer移动版',
btn: '知道了'
});提示
1
2
3
4
5layer.open({
content: '你好',
skin: 'msg',
time: 3 //3秒后自动关闭
});询问框
1
2
3
4
5
6
7
8layer.open({
content: '您确定要刷新一下本页面吗?',
btn: ['刷新', '不要'],
yes: function(index){
location.reload();
layer.close(index);
}
});底部对话框
1
2
3
4
5
6
7
8layer.open({
content: '这是一个底部弹出的询问提示',
btn: ['删除', '取消'],
skin: 'footer',
yes: function(index){
layer.open({content: '执行删除操作'})
}
});页面层
1
2
3
4
5
6layer.open({
type: 1,
content: '可传入任何内容,支持html。一般用于手机页面中',
anim: 'up',
style: 'position:fixed; bottom:0; left:0; width: 100%; height: 200px; padding:10px 0; border:none;'
});loading带文字
1
2
3
4layer.open({
type: 2,
content: '加载中' //如果没有content的话,则只有几个加载的小圆点
});