时间:2021-05-26
项目中有弹出层的内容是不固定的,根据情况可能变长变短,于是就要求做layer弹出层的大小自适应,查询了api后发现
layer.iframeAuto方法可以实现,这里吐槽一点,ie浏览器的html没有被body撑大,而iframeAuto方法是根据html的高度计算的,导致我之前出现在ie下,调用iframeAuto后高度直接变零。
好了,做好了这一点之后,测试又提出一个问题,因为他是用小屏幕测试的,上面的位置没有变,弹出层变长以后按钮就被挤到下面去了。所以我需要做一个效果,在弹出层长度改变后重新居中。
这时我就在网上开始找资料了,发现layer.style可以实现这个效果,但是很麻烦需要计算然后赋值。
正当我决定用这个方案时,结果我在chrome控制台测试layer.style时发现一个意外的效果。当我移动控制台边界改变大小时,弹出层自动居中了。
移动前
移动后
实际上是触发了父层的$(window).resize()。
然后我开始向这个方法实验,但是不管是$(top.window).resize(),$(window.top).resize(),top.$(window).resize(),$(top).resize()都不能触发top层的$(window).resize()方法。
最后还是没有成功,我只好重新使用layer.style来计算了
var index = top.layer.getFrameIndex(window.name);//获得layer弹出层索引top.layer.iframeAuto(index, 30);//layer弹出层自适应,改造的代码,源代码加上自己加的高度var topHeight = ($(top.window).height() - $(window).height())/2;//计算高度top.layer.style(index,{top:topHeight+"px"});//设置弹出层位置中规中矩解决这个问题,不过还是不知道在弹出层是否能够调用父页面的$(window).resize()
完!
以上这篇layer实现弹出层自动调节位置就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
layer只是作为layui的一个弹层模块layer弹出层取消遮罩笔者认为跟layer弹出层非模态对话框类似layer.open({title:'在线调试',c
本文实例讲述了jquery实现可自动判断位置的弹出层效果代码。分享给大家供大家参考。具体如下:这是一款jquery实现的智能弹出层效果,位置可以自适应,当层靠右
在项目应用中,遇到自定义关闭layer.alert弹出层,即在关闭layer.alert时,可以自动触发关闭时的事件,具体方法为:layer.alert('爱心
首先,弹出某个层时需要给层取名(赋值),如:varmylay=layer.open({type:2,content:'layer.html',title:fal
本文实例讲述了layer实现关闭弹出层刷新父界面功能。分享给大家供大家参考,具体如下:layer是一款近年来备受青睐的web弹层组件,她具备全方位的解决方案,致