会读到本文的朋友,想必是正在使用layer或者对layer已经有一定的熟悉程度了,既然如此,唠家常的话就不说了,我们直接入主题。
layer的弹窗,有一个full方法,可以让我们的弹窗铺满整个屏幕,这对我们弹出一个内容比较多的页面时,显得十分有用,因为我们有了更多展示内容的空间。但layui官网提供的layer,存在一个问题,就是当你调用了full方法之后,虽然能全屏,但是却不再支持窗口的响应了,就是当我们改变窗口大小时,弹层不会跟着窗口进行放大缩小,这就是今天我们要解决的问题。
解决办法,当然是改写layer.js了,因为我们是添加一个功能,不是改写功能,对已有的代码不会造成任何负面影响,所以这也是一个不错的选择。查看layer的源码,我们可以找到对应的full方法,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//全屏
layer.full=function(index){
varlayero=$('#'+doms[0]+index),timer;
ready.record(layero);
if(!doms.html.attr('layer-full')){
doms.html.css('overflow','hidden').attr('layer-full',index);
}
clearTimeout(timer);
timer=setTimeout(function(){
varisfix=layero.css('position')==='fixed';
layer.style(index,{
top:isfix?0:win.scrollTop(),
left:isfix?0:win.scrollLe