解决layer弹出层自适应页面大小的问题


Posted in Javascript onSeptember 16, 2019

前两天在Vue中引入了Vue-layer插件,实现了弹出层效果。不过由于是在22寸屏下开发的,没多想,弹出层的area的长宽就设定的都是800px,效果还很好。结果那给用户看,他们是12寸的笔记本。弹出层直接撑爆了页面,无法关闭。。。

网上的解决方案大都是以下几种:

1、改成百分比形式。有bug,下面细说。

2、改成em,rem等。同上

3、采用area:auto。可能是因为采用了swiper的原因吧,这样设置会导致弹出层出现“顶天立地”的效果

4、采用iframeAuto。这个没太搞懂怎么用,而且网上查的资料,很多人都反映不能用。

5、根据当前页面高度计算好以后,再填入高度。这应该是最优解,但是有点麻烦。

尝试了很多办法,都无法实现想要的效果,最后没办法,只能去研究为什么百分比和rem这种形式会有bug。

这个bug的效果是,虽然弹出窗按比例展示了,但是里面包含的一个div的由于高度很小,导致看不到任何内容。查看网页代码,很容易就找到出问题的所在,这个div的height只有50px,不知道怎么会这样。

估摸着应该是js文件计算高度是出错了。这个div的id是vlip1545899541487,猜测应该是一个固定前缀加了随机数。只查找vlip,在vue-layer.js中果然找到了相应的代码

id:"vlip"+(new Date).getTime()

id是vlip加时间戳生成的,然后再往后看,就会发现问题所在

{return{height:parseInt(this.options.area[1])-50+"px",minHeight:"inherit",overflow:"auto"}}}

直接去area的第二个参数转成int值减去50再加上后缀“px”,所以假如我们配了80%的高度,最终的height只有30px。。。

所以只要把这里的生成代码略加改动就好。

{return{height:this.options.area[1].indexOf("%")>=0?"90%":parseInt(this.options.area[1])-50+"px",minHeight:"inherit",overflow:"auto"}}}

增加三目运算符,判断如果包含%的话,就写死一个值90%。其实这样不算完美,因为不同尺寸的显示屏,90%所展示的效果都不太一样。但是这样比较省事。

以上这篇解决layer弹出层自适应页面大小的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js检测客户端不是firefox则提示下载
Apr 07 Javascript
js 页面关闭前的出现提示的实现代码
May 25 Javascript
日期处理的js库(迷你版)--自建js库总结
Nov 21 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
Aug 05 Javascript
showModelDialog弹出文件下载窗口的使用示例
Nov 19 Javascript
多种方法实现360浏览器下禁止自动填写用户名密码
Jun 16 Javascript
jQuery实现HTML表格单元格的合并功能
Apr 06 Javascript
JSONP跨域请求
Mar 02 Javascript
vue-router路由参数刷新消失的问题解决方法
Jun 17 Javascript
AngularJS实现表单元素值绑定操作示例
Oct 11 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
Feb 26 Javascript
微信小程序使用npm包的方法步骤
Aug 13 Javascript
手把手15分钟搭一个企业级脚手架
Sep 16 #Javascript
layer弹出层自适应高度,垂直水平居中的实现
Sep 16 #Javascript
JS多个异步请求 按顺序执行next实现解析
Sep 16 #Javascript
基于layui框架响应式布局的一些使用详解
Sep 16 #Javascript
Layui点击图片弹框预览的实现方法
Sep 16 #Javascript
layuiAdmin循环遍历展示商品图片列表的方法
Sep 16 #Javascript
layui异步加载table表中某一列数据的例子
Sep 16 #Javascript
You might like
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
php类的定义与继承用法实例
2015/07/07 PHP
PHP7.0安装笔记整理
2015/08/28 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
2017/03/06 PHP
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
jquery实现submit提交表单
2015/02/03 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
2015/08/22 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
jQuery监听文件上传实现进度条效果的方法
2016/10/16 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
Vue.js实现列表清单的操作方法
2017/11/15 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
Python模块学习 filecmp 文件比较
2012/08/27 Python
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
python lambda表达式(匿名函数)写法解析
2019/09/16 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
PyCharm 在Windows的有用快捷键详解
2020/04/07 Python
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
美国最大的在线生存商店:Survival Frog
2020/12/13 全球购物
将一个文本文件的内容按倒序打印出来
2015/01/05 面试题
基于Python 函数和方法的区别说明
2021/03/24 Python
企业门卫岗位职责
2013/12/12 职场文书
后勤主管岗位职责
2014/03/01 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
超市督导岗位职责
2015/04/10 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏