layer组件
Intro
具备丰富api,支持ajax,static方式的弹层组件
Author
name: Janking
concat:[email protected]
Example
http://codepen.io/janking/pen/EyZRMJ
Options
@param {String} container 组件的执行上下文,默认是body
@param {Boolean} cache 是否缓存 ajax 页面
@param {Boolean} shadow 是否开启阴影层关闭
@param {String} confirmHandle 确认按钮Class
@param {String} closeHandle 关闭按钮Class
@param {String} offsetWidth layer 宽度
@param {String} offsetHeight layer 高度
@param {String} url ajax url
@param {String} dataType ajax dataType:html,json,xml...
@param {String} method ajax type : get/post
@param {String} data ajax data
@param {Function} successCall ajax success callback
@param {Function} errorCall ajax error callback
@param {Function} showCall 回调函数 - 显示触发
@param {Function} confirmCall 回调函数 - 确认触发
@param {Function} cancelCall 回调函数 - 关闭触发
Methods
@method [showLayer] 显示层
@method [hideLayer] 隐藏层
@method [ajaxLoad] ajax弹层
@method [cutTo] 切换layer [layerBoxId]
Events
/**
* $('selector').on('layer.show',function(){});
* $('selector').on('layer.hide',function(){});
*/
Usage
// 注意:selector必须是唯一,
// 当页面中没有div#selector,将自动创建,并 append 到 container 中
var staticLayer = $('#demoOne').IUI('layer', {
offsetWidth: 500,
content: $('#demoOne-template').html(),
showCall:function(layer){
// this --> selector
// layer --> Layer object
},
hideCall:function(layer){
// this --> selector
// layer --> Layer object
},
successCall:function(response,xhr,layer){
// this --> selector
// response --> backend return data
// xhr --> XmlHttpRequest object
// layer --> Layer object
},
errorCall:function(response,xhr,layer){
// this --> selector
// response --> backend return data
// xhr --> XmlHttpRequest object
// layer --> Layer object
}
});
$('.btn-primary').on('click', function(event) {
staticLayer.showLayer();
});
$('#demoOne').on('layer.show',function(event,layer){
//当 layer 显示时触发事件,此事件【先于】 showCall 回调方法,【后于】 successCall 回调方法
});
$('#demoOne').on('layer.hide',function(event,layer){
//当 layer 隐藏时触发事件,此事件 【先于】 cancelCall 回调方法,【后于】 errorCall 回调方法
});
//ajax example 在codepen.io上不好实现,如需看动态效果,请直接下载源码
var ajaxLayer = $('#demoThree').IUI('layer',{
url:'./ext/layer-ajaxPage.html',
offsetWidth:600,
successCall:function(res,ajax,deferred){
deferred.$content.html(res);
}
});
//切换layer
$('#demoOne').on('click','#btn-switch-1',function(){
layerOne.cutTo('#demoTwo');
});
$('#demoTwo').on('click','#btn-switch-2',function(){
layerTwo.cutTo('#demoOne');
});
Attention
在遇到层与层切换的需求时,不建议用两个layer,可以在一个layer中划分区域来显示隐藏因为已经用一种css方式实现垂直水平居中,不再需要js计算,兼容IE8+,故在
IUI 1.2.0
后 layer 删除了vertical
resize
,开发者在更新以前项目的IUI.js
时,需要注意一下2016-07-09 新增
cutTo
方法用于layer切换。