1、基础参数css
1layer:open基础参数html
layer.open({ type: 1//基本层类型:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层) ,title:'新增'//标题:三种类型:(1)title :'我是标题' (2)title: ['文本', 'font-size:18px;'] (3) title: false ,content: '好' //content:这里content是一个DOM,注意:最好该元素要存放在body最外层,不然可能被其它的相对元素所影响 ,skin: '' //样式类名 :自定义弹出框样式 ,area: ['500px', '300px'] //宽高:定义高度和宽度,不定义将自适应,能够只定义一个 ,offset: 'rt' //坐标:默认垂直水平居中 ,btn: ['按钮一', '按钮二', '按钮三']//按钮:能够是多个 ,closeBtn: 1 //关闭按钮:配置1和2来展现,若是不显示,则closeBtn: 0 ,shade: [0.8, '#393D49'] //遮罩:shade: [0.8, '#393D49'];若是不想显示遮罩,能够shade: 0 ,shadeClose:true //是否点击遮罩关闭:true表示点击遮罩关闭,false表示点击遮罩不关闭,默认false ,time: 5000 //自动关闭所需毫秒:秒后自动关闭,默认不会自动关闭 ,id:'123'//用于控制弹层惟一标识:设置该值后,不论是什么类型的层,都只容许同时弹出一个。通常用于页面层和iframe层模式 ,anim:1 //弹出动画:支持的动画类型有0-6 若是不想显示动画,设置 anim: -1 便可 ,isOutAnim:false//关闭动画 :关闭层时会有一个过分动画。若是不想开启,设置 isOutAnim: false 便可,默认true ,maxmin:true //最大最小化:该参数值对type:1和type:2有效。默认不显示最大小化按钮。须要显示配置maxmin: true便可。默认false ,fixed:true //固定:即鼠标滚动时,层是否固定在可视区域。若是不想,设置fixed: false便可。默认为true ,resize:false //是否容许拉伸:默认状况下,能够在弹层右下角拖动来拉伸尺寸。若是对指定的弹层屏蔽该功能,设置 false便可。该参数对loading、tips层无效。默认为true ,resizing:function(layero){//监听窗口拉伸动做:当拖拽弹层右下角对窗体进行尺寸调整时,若是设定了该回调,则会执行。回调返回一个参数:当前层的DOM对象。默认为null console.log(layero); } ,scrollbar:false//是否容许浏览器出现滚动条:默认容许浏览器滚动,若是设定scrollbar: false,则屏蔽 ,maxWidth:300//最大宽度:设置弹出框最大宽度,只有当area: 'auto'时,maxWidth的设定才有效。 ,maxHeight:300//最大高度:设置弹出框最大高度,只有当高度自适应时,maxHeight的设定才有效 ,zIndex:199999//层叠顺序 ,move:'.mine-move' //触发拖动的元素:如move: '.mine-move',表示可拖拽样式为mine-move的区域。配置设定move: false来禁止拖拽,默认'.layui-layer-title' ,moveOut:true//是否容许拖拽到窗口外:默认只能在窗口内拖拽,若是想让拖到窗外,那么设定moveOut: true便可 ,moveEnd: function(layero){}//拖动完毕后的回调方法:其中layero为当前层的DOM对象,默认为null ,tips: [1, '#c00']//方向和颜色:支持上右下左四个方向,经过1-4进行方向设定,定义一些颜色,能够设定tips: [1, '#c00'] ,tipsMore: true//层弹出后的成功回调方法:容许多个意味着不会销毁以前的tips层。经过tipsMore: true开启 ,success: function(layero, index){//层弹出后的成功回调方法:当须要在层建立完毕时即执行一些语句,能够经过该回调,默认:null console.log(layero, index);//layero, index别是当前层DOM当前层索引 } ,yes: function(index, layero){//肯定按钮回调方法:该回调携带两个参数,分别为当前层索引、当前层DOM对象,默认:null //do something layer.close(index); //若是设定了yes回调,需进行手工关闭 } ,cancel: function(index, layero){ //右上角关闭按钮触发的回调:该回调携带两个参数,分别为:当前层索引参数(index)、当前层的DOM对象(layero),默认会自动触发关闭。若是不想关闭,return false便可,默认:null if(confirm('肯定要关闭么')){ //只有当点击confirm框的肯定时,该层才会关闭 layer.close(index) } } ,end:function(){//层销毁后触发的回调:不管是确认仍是取消,只要层被销毁了,end都会执行,不携带任何参数。默认:null } ,full:function(layero){//full/min/restore -分别表明最大化、最小化、还原 后触发的回调,携带一个参数,即当前层DOM,默认:null } });
二、按钮回调方法jquery
//eg1 layer.confirm('纳尼?', { btn: ['按钮一', '按钮二', '按钮三'] //能够无限个按钮 ,btn3: function(index, layero){ //按钮【按钮三】的回调 } }, function(index, layero){ //按钮【按钮一】的回调 }, function(index){ //按钮【按钮二】的回调 }); //eg2 layer.open({ content: 'test' ,btn: ['按钮一', '按钮二', '按钮三'] ,yes: function(index, layero){ //按钮【按钮一】的回调 } ,btn2: function(index, layero){ //按钮【按钮二】的回调 //return false 开启该代码可禁止点击该按钮关闭 } ,btn3: function(index, layero){ //按钮【按钮三】的回调 //return false 开启该代码可禁止点击该按钮关闭 } ,cancel: function(){ //右上角关闭回调 //return false 开启该代码可禁止点击该按钮关闭 } });
2、核心函数ajax
一、layer.config(options) - 初始化全局配置json
(1)采用seajs或者requirejs加载layer数组
layer.config({//layer就会去加载一些它所须要的配件,好比css等。 path: '/res/layer/' //layer.js所在的目录,能够是绝对目录,也能够是相对目录 });
(2)采用<script src="?a.js&layer.js">这种合并的方式引入layer浏览器
layer.config({//layer就不会去自动去获取路径,但你须要经过如下方式来完成初始化的配置 path: '/res/layer/' //layer.js所在的目录,能够是绝对目录,也能够是相对目录 });
(3)layer.config(options) 能够配置层默认的基础参数,如:函数
layer.config({ skin: 'layui-layer-molv' //默认皮肤 });
(4)除此以外,extend还容许你加载拓展的css皮肤,如:requirejs
layer.config({ //若是是独立版的layer,则将myskin存放在./skin目录下 //若是是layui中使用layer,则将myskin存放在./css/modules/layer目录下 extend: 'myskin/style.css' });
二、layer.ready(callback) - 初始化就绪动画
三、layer.alert(content, options, yes) - 普通讯息框
layer.alert('只想简单的提示'); //eg2 layer.alert('加了个图标', {icon: 1}); //这时若是你也还想执行yes回调,能够放在第三个参数中。 //eg3 layer.alert('有了回调', function(index){ //do something layer.close(index); });
四、layer.confirm(content, options, yes, cancel) - 询问框
//eg1 layer.confirm('is not?', {icon: 3, title:'提示'}, function(index){ //do something layer.close(index); }); //eg2 layer.confirm('is not?', function(index){ //do something layer.close(index); });
五、layer.msg(content, options, end) - 提示框
//eg1 layer.msg('只想弱弱提示'); //eg2 layer.msg('有表情地提示', {icon: 6}); //eg3 layer.msg('关闭后想作些什么', function(){ //do something }); //eg layer.msg('同上', { icon: 1, time: 2000 //2秒关闭(若是不配置,默认是3秒) }, function(){ //do something });
六、layer.load(icon, options) - 加载层
load默认是不会自动关闭的,由于你通常会在ajax回调体中关闭它
//eg1 var index = layer.load(); //eg2 var index = layer.load(1); //换了种风格 //eg3 var index = layer.load(2, {time: 10*1000}); //又换了种风格,而且设定最长等待10秒 //关闭 layer.close(index);
七、layer.tips(content, follow, options) - tips层
//eg1 layer.tips('只想提示地精准些', '#id'); //eg 2 $('#id').on('click', function(){ var that = this; layer.tips('只想提示地精准些', that); //在元素的事件回调体中,follow直接赋予this便可 }); //eg 3 layer.tips('在上面', '#id', { tips: 1 });
八、layer.close(index) - 关闭特定层
(1)当想关闭当前页的某个层时,每一种弹层调用方式,都会返回一个index
var index = layer.open(); var index = layer.alert(); var index = layer.load(); var index = layer.tips(); layer.close(index); //此时只须要把得到的index,轻轻地赋予layer.close便可
(2)当在iframe页面关闭自身时
var index = parent.layer.getFrameIndex(window.name); //先获得当前iframe层的索引 parent.layer.close(index); //再执行关闭
九、layer.closeAll(type) - 关闭全部层
layer.closeAll(); //疯狂模式,关闭全部层 layer.closeAll('dialog'); //关闭信息框 layer.closeAll('page'); //关闭全部页面层 layer.closeAll('iframe'); //关闭全部的iframe层 layer.closeAll('loading'); //关闭加载层 layer.closeAll('tips'); //关闭全部的tips层
十、layer.style(index, cssStyle) - 从新定义层的样式
//从新给指定层设定width、top等 layer.style(index, { width: '1000px', top: '10px' });
十一、layer.title(title, index) - 改变层的标题
十二、layer.getChildFrame(selector, index) - 获取iframe页的DOM
layer.open({ type: 2, content: 'test/iframe.html', success: function(layero, index){ var body = layer.getChildFrame('body', index); var iframeWin = window[layero.find('iframe')[0]['name']]; //获得iframe页的窗口对象,执行iframe页的方法:iframeWin.method(); console.log(body.html()) //获得iframe页的body内容 body.find('input').val('Hi,我是从父页来的') } });
1三、layer.getFrameIndex(windowName) - 获取特定iframe层的索引
//假设这是iframe页 var index = parent.layer.getFrameIndex(window.name); //先获得当前iframe层的索引 parent.layer.close(index); //再执行关闭
1四、layer.iframeAuto(index) - 指定iframe层自适应
1五、layer.iframeSrc(index, url) - //重置特定iframe url
1六、layer.setTop(layero) -置顶当前窗口
1七、layer.full()、layer.min()、layer.restore() - 手工执行最大小化
1八、layer.prompt(options, yes) - 输入层
//例子2 layer.prompt({ formType: 2,//输入框类型,支持0(文本)默认1(密码)2(多行文本) value: '初始值', title: '请输入值', area: ['800px', '350px'] //自定义文本域宽高 }, function(value, index, elem){ alert(value); //获得value layer.close(index); });
1九、layer.tab(options) - tab层
layer.tab({ area: ['600px', '300px'], tab: [{ title: 'TAB1', content: '内容1' }, { title: 'TAB2', content: '内容2' }, { title: 'TAB3', content: '内容3' }] });
20、layer.photos(options) - 相册层 (1)photos为传入json
$.getJSON('/jquery/layer/test/photos.json', function(json){ layer.photos({ photos: json ,anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0以前的版本用shift参数) }); });
而返回的json需严格按照以下格式:
{ "title": "", //相册标题 "id": 123, //相册id "start": 0, //初始显示的图片序号,默认0 "data": [ //相册包含的图片,数组格式 { "alt": "图片名", "pid": 666, //图片id "src": "", //原图地址 "thumb": "" //缩略图地址 } ] }
(2)直接从页面中获取图片
<div id="layer-photos-demo" class="layer-photos-demo"> <img layer-pid="图片id,能够不写" layer-src="大图地址" src="缩略图" alt="图片名"> <img layer-pid="图片id,能够不写" layer-src="大图地址" src="缩略图" alt="图片名"> </div>
<script> //调用示例 layer.photos({ photos: '#layer-photos-demo' ,anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0以前的版本用shift参数) }); </script>
(3)photos还有个tab回调,切换图片时触发。
layer.photos({ photos: json/选择器, tab: function(pic, layero){ console.log(pic) //当前图片的一些信息 } });