layui的layer弹出层内置方法
2019-08-15 14:42
543 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44665610/article/details/99623130
内置方法
文章目录
- 内置方法
- layer.config(options) - 初始化全局配置
- layer.ready(callback) - 初始化就绪
- layer.open(options) - 原始核心方法
- layer.alert(content, options, yes) - 普通信息框
- layer.confirm(content, options, yes, cancel) - 询问框
- layer.msg(content, options, end) - 提示框
- layer.load(icon, options) - 加载层
- layer.tips(content, follow, options) - tips层
- layer.close(index) - 关闭特定层
- layer.closeAll(type) - 关闭所有层
- layer.style(index, cssStyle) - 重新定义层的样式
- layer.title(title, index) - 改变层的标题
- layer.getChildFrame(selector, index) - 获取iframe页的DOM
- layer.getFrameIndex(windowName) - 获取特定iframe层的索引
- layer.iframeAuto(index) - 指定iframe层自适应
- layer.iframeSrc(index, url) - //重置特定iframe url
- layer.setTop(layero) -置顶当前窗口
layer.config(options) - 初始化全局配置
/* 这是一个可以重要也可以不重要的方法,重要的是,它的权利真的很大,尤其是在模块化加载layer时,你会发现你必须要用到它。它不仅可以配置一些诸如路径、加载的模块,甚至还可以决定整个弹层的默认参数。而说它不重要,是因为多数情况下,你会发现,你似乎不是那么十分需要它。但你真的需要认识一下这位伙计。 */ //如果您是采用seajs或者requirejs加载layer,你需要执行该方法来完成初始化的配置。比如: layer.config({ path: '/res/layer/' //layer.js所在的目录,可以是绝对目录,也可以是相对目录 }); //这样的话,layer就会去加载一些它所需要的配件,比如css等。 //当然,你即便不用seajs或者requirejs,也可以通过上述方式设定路径 //如果你是采用<script src="?a.js&layer.js">这种合并的方式引入layer,那么您需要在script标签上加一个自定义属性merge="true"。如: <script src="?a.js&layer.js" merge="true"> 这样的话,layer就不会去自动去获取路径,但你需要通过以下方式来完成初始化的配置 layer.config({ path: '/res/layer/' //layer.js所在的目录,可以是绝对目录,也可以是相对目录 }); //如果采用 layui 加载 layer,无需设置 path。所以前置工作都是自动完成。 //但layer.config的作用远不止上述这样。它还可以配置层默认的基础参数,如: layer.config({ anim: 1, //默认动画风格 skin: 'layui-layer-molv' //默认皮肤 … }); //除此之外,extend还允许你加载拓展的css皮肤,如: layer.config({ //如果是独立版的layer,则将myskin存放在./skin目录下 //如果是layui中使用layer,则将myskin存放在./css/modules/layer目录下 extend: 'myskin/style.css' });
layer.ready(callback) - 初始化就绪
/* 由于我们的layer内置了轻量级加载器,所以你根本不需要单独引入css等文件。但是加载总是需要过程的。当你在页面一打开就要执行弹层时,你最好是将弹层放入ready方法中 */ //页面一打开就执行弹层 layer.ready(function(){ layer.msg('很高兴一开场就见到你'); });
layer.open(options) - 原始核心方法
/* 基本上是露脸率最高的方法,不管是使用哪种方式创建层,都是走layer.open(),创建任何类型的弹层都会返回一个当前层索引 */ var index = layer.open({ content: 'test' }); //拿到的index是一个重要的凭据,它是诸如layer.close(index)等方法的必传参数。
layer.alert(content, options, yes) - 普通信息框
/* 它的弹出似乎显得有些高调,一般用于对用户造成比较强烈的关注,类似系统alert,但却比alert更灵便。它的参数是自动向左补齐的。通过第二个参数,可以设定各种你所需要的基础参数,但如果你不需要的话,直接写回调即可 */ //eg1 layer.alert('只想简单的提示'); //eg2 layer.alert('加了个图标', {icon: 1}); //这时如果你也还想执行yes回调,可以放在第三个参数中。 //eg3 layer.alert('有了回调', function(index){ //do something layer.close(index); });
layer.confirm(content, options, yes, cancel) - 询问框
/* 类似系统confirm,但却远胜confirm,另外它不是和系统的confirm一样阻塞你需要把交互的语句放在回调体中。同样的,它的参数也是自动补齐的 */ //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) - 提示框
/* 我们在源码中用了相对较大的篇幅来定制了这个msg,目的是想将其打造成露脸率最高的提示框。而事实上我的确也在大量地使用它。因为它简单,而且足够得自觉,它不仅占据很少的面积,而且默认还会3秒后自动消失所有这一切都决定了我对msg的爱。因此我赋予了它许多可能在外形方面,它坚持简陋的变化,在作用方面,它坚持零用户操作。而且它的参数也是自动补齐的。 */ //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) - 加载层
/* type:3的深度定制。load并不需要你传太多的参数,但如果你不喜欢默认的加载风格,你还有选择空间。icon支持传入0-2如果是0,无需传。另外特别注意一点: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层
/* type:4的深度定制。也是我本人比较喜欢的一个层类型,因为它拥有和msg一样的低调和自觉,而且会智能定位,即灵活地判断它应该出现在哪边。默认是在元素右边弹出 */ //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) - 关闭特定层
/* 关于它似乎没有太多介绍的必要,唯一让你疑惑的,可能就是这个index了吧。事实上它非常容易得到 */ //当你想关闭当前页的某个层时 var index = layer.open(); var index = layer.alert(); var index = layer.load(); var index = layer.tips(); //正如你看到的,每一种弹层调用方式,都会返回一个index layer.close(index); //此时你只需要把获得的index,轻轻地赋予layer.close即可 //如果你想关闭最新弹出的层,直接获取layer.index即可 layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的 //当你在iframe页面关闭自身时 var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引 parent.layer.close(index); //再执行关闭
layer.closeAll(type) - 关闭所有层
/* 如果你很懒,你不想去获取index你只想关闭。那么closeAll真的可以帮上你。如果你不指向层类型的话,它会销毁掉当前页所有的layer层。当然,如果你只想关闭某个类型的层,那么你可以 */ layer.closeAll(); //疯狂模式,关闭所有层 layer.closeAll('dialog'); //关闭信息框 layer.closeAll('page'); //关闭所有页面层 layer.closeAll('iframe'); //关闭所有的iframe层 layer.closeAll('loading'); //关闭加载层 layer.closeAll('tips'); //关闭所有的tips层
layer.style(index, cssStyle) - 重新定义层的样式
/* 该方法对loading层和tips层无效。参数index为层的索引,cssStyle允许你传入任意的css属性 */ //重新给指定层设定width、top等 layer.style(index, { width: '1000px', top: '10px' });
layer.title(title, index) - 改变层的标题
layer.title('标题变了', index)
layer.getChildFrame(selector, index) - 获取iframe页的DOM
/* 当你试图在当前页获取iframe页的DOM元素时,你可以用此方法。selector即iframe页的选择器 */ 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,我是从父页来的') } });
layer.getFrameIndex(windowName) - 获取特定iframe层的索引
/* 此方法一般用于在iframe页关闭自身时用到。 */ //假设这是iframe页 var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引 parent.layer.close(index); //再执行关闭
layer.iframeAuto(index) - 指定iframe层自适应
/* 调用该方法时,iframe层的高度会重新进行适应 */
layer.iframeSrc(index, url) - //重置特定iframe url
/* 似乎不怎么常用的样子。使用方式: */ layer.iframeSrc(index, 'http://sentsin.com')
layer.setTop(layero) -置顶当前窗口
/* 非常强大的一个方法,虽然一般很少用。但是当你的页面有很多很多layer窗口,你需要像Window窗体那样,点击某个窗口,该窗体就置顶在上面,那么setTop可以来轻松实现。它采用巧妙的逻辑,以使这种置顶的性能达到最优 */ //通过这种方式弹出的层,每当它被选择,就会置顶。 layer.open({ type: 2, shade: false, area: '500px', maxmin: true, content: 'http://www.layui.com', zIndex: layer.zIndex, //重点1 success: function(layero){ layer.setTop(layero); //重点2 } });
相关文章推荐
- layui内置模块(layer弹出层)
- 前端ui框架layui——layer弹出层-内置方法
- jQuery layer弹出层插件 http://layer.layui.com/直接上官网学
- 获取layer.open弹出层的返回值方法
- layer弹出层中H5播放器全屏出错的解决方法
- [置顶] [Layer] layui的弹出层用法记录
- layui弹出层(layer)
- 关于layer.open弹出层单击事件如何调用父窗口方法的说明
- layui 优化button按钮和弹出框的方法
- layui中layer前端组件实现图片显示功能的方法分析
- layui学习笔记——layer弹出层
- vue-cli脚手架引入弹出层layer插件的几种方法
- layer弹出子iframe层父子页面传值的实现方法
- layui弹出层layer
- 自写button关闭layui弹出层的几种方法
- 修改DWZ的内置方法(openTab),实现搜索,弹出新的navTab
- layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
- Layui 弹出层组件——layer
- Layer弹出层插件 常用方法
- 关于layui-layer独立组件--弹出层