layer实现弹出层自动调节位置


Posted in Javascript onSeptember 05, 2019

项目中有弹出层的内容是不固定的,根据情况可能变长变短,于是就要求做layer弹出层的大小自适应,查询了api后发现

layer.iframeAuto方法可以实现,这里吐槽一点,ie浏览器的html没有被body撑大,而iframeAuto方法是根据html的高度计算的,导致我之前出现在ie下,调用iframeAuto后高度直接变零。

好了,做好了这一点之后,测试又提出一个问题,因为他是用小屏幕测试的,上面的位置没有变,弹出层变长以后按钮就被挤到下面去了。所以我需要做一个效果,在弹出层长度改变后重新居中。

这时我就在网上开始找资料了,发现layer.style可以实现这个效果,但是很麻烦需要计算然后赋值。

正当我决定用这个方案时,结果我在chrome控制台测试layer.style时发现一个意外的效果。当我移动控制台边界改变大小时,弹出层自动居中了。

移动前

layer实现弹出层自动调节位置

移动后

layer实现弹出层自动调节位置

实际上是触发了父层的$(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实现弹出层自动调节位置就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery DOM操作小结与实例
Jan 07 Javascript
js关闭父窗口时关闭子窗口
Apr 01 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
Dec 18 Javascript
jQuery中:empty选择器用法实例
Dec 30 Javascript
谈谈jQuery Ajax用法详解
Nov 27 Javascript
浅析在javascript中创建对象的各种模式
May 06 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
Aug 24 Javascript
AngularJS 文件上传控件 ng-file-upload详解
Jan 13 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
Feb 27 Javascript
AngularJS+bootstrap实现动态选择商品功能示例
May 17 Javascript
vue中$refs的用法及作用详解
Apr 24 Javascript
vue返回上一页面时回到原先滚动的位置的方法
Dec 20 Javascript
vue使用i18n实现国际化的方法详解
Sep 05 #Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
Sep 05 #Javascript
一文看懂如何简单实现节流函数和防抖函数
Sep 05 #Javascript
React路由鉴权的实现方法
Sep 05 #Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
Sep 05 #Javascript
layer.open的自适应及居中及子页面标题的修改方法
Sep 05 #Javascript
在layui中layer弹出层点击事件无效的解决方法
Sep 05 #Javascript
You might like
PHP的博客ping服务代码
2012/02/04 PHP
提高php运行速度的一些小技巧分享
2012/07/03 PHP
PHP多例模式介绍
2013/06/24 PHP
php实现俄罗斯乘法实例
2015/03/07 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
2015/05/12 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
javascript attachEvent和addEventListener使用方法
2009/03/19 Javascript
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
JavaScript实现更改网页背景与字体颜色的方法
2015/02/02 Javascript
jQuery简单实现隐藏以及显示特效
2015/02/26 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
javascript循环链表之约瑟夫环的实现方法
2017/01/16 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
Vue 仿百度搜索功能实现代码
2017/02/16 Javascript
JS中使用new Option()实现时间联动效果
2018/12/10 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
Python实现将n个点均匀地分布在球面上的方法
2015/03/12 Python
Python中不同进制的语法及转换方法分析
2016/07/27 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
Python3 模块、包调用&路径详解
2017/10/25 Python
python实现简单遗传算法
2018/03/19 Python
关于python写入文件自动换行的问题
2018/06/23 Python
教你如何编写、保存与运行Python程序的方法
2019/07/12 Python
碧欧泉法国官网:Biotherm法国
2019/10/23 全球购物
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
村级四风对照检查材料
2014/08/24 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers
SpringBoot Http远程调用的方法
2022/08/14 Java/Android