前端ui框架layui——layer弹出层-内置方法

提示:本页内容所展示的内置方法是除了所有弹出方法(eg:layer.open)以外的,想看弹出方法请到这里

————————内置方法——————————

1.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所在的目录,可以是绝对目录,也可以是相对目录
});

    但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'
});
//具体的皮肤定制,可以参见:skin参数说明   

注意:如果采用 layui 加载 layer,无需设置 path。所以前置工作都是自动完成。

2.layer.ready(callback) - 初始化就绪
    由于我们的layer内置了轻量级加载器,所以你根本不需要单独引入css等文件。但是加载总是需要过程的。当你在页面一打开就要执行弹层时,你最好是将弹层放入ready方法中,如:
//页面一打开就执行弹层
layer.ready(function(){
  layer.msg('很高兴一开场就见到你');
}); 
3.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); //再执行关闭  

4.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层   
5.layer.style(index, cssStyle) - 重新定义层的样式
    该方法对loading层和tips层无效。参数index为层的索引,cssStyle允许你传入任意的css属性
//重新给指定层设定width、top等
layer.style(index, {
  width: '1000px',
  top: '10px'
}); 
6.layer.title(title, index) - 改变层的标题
    使用方式:layer.title('标题变了', index)
7.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,我是从父页来的')
  }
}); 
8.layer.iframeAuto(index) - 指定iframe层自适应
    调用该方法时,iframe层的高度会重新进行适应
9.layer.iframeSrc(index, url) - //重置特定iframe url
    似乎不怎么常用的样子。使用方式:layer.iframeSrc(index, 'http://sentsin.com')
10.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
  }
});


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值