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

 更新时间:2019年09月16日 10:19:52   作者:洛风释  
今天小编就为大家分享一篇解决layer弹出层自适应页面大小的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

前两天在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数组及常见操作方法小结

    JavaScript数组及常见操作方法小结

    这篇文章主要介绍了JavaScript数组及常见操作方法,结合实例形式总结分析了JavaScript数组的基本获取、添加、删除、排序、翻转等相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • 微信小程序表单验证功能完整实例

    微信小程序表单验证功能完整实例

    这篇文章主要介绍了微信小程序表单验证功能,结合完整实例形式分析了微信小程序完成表单验证功能所涉及的视图与逻辑操作技巧,需要的朋友可以参考下
    2017-12-12
  • js实现简单的轮播图效果

    js实现简单的轮播图效果

    这篇文章主要为大家详细介绍了js实现简单的轮播图效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • 基于JavaScript实现留言板功能

    基于JavaScript实现留言板功能

    这篇文章主要为大家详细介绍了基于JavaScript实现留言板功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • HTML中不支持静态Expando的元素的问题

    HTML中不支持静态Expando的元素的问题

    HTML中不支持静态Expando的元素的问题...
    2007-03-03
  • javascript实现3D变换的立体圆圈实例

    javascript实现3D变换的立体圆圈实例

    这篇文章主要介绍了javascript实现3D变换的立体圆圈效果,涉及javascript动态操作页面元素实现滚动与变色的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • JavaScript中的return语句简单介绍

    JavaScript中的return语句简单介绍

    return语句在js中起到举足轻重的作用,该关键字不仅具有返回函数值得功能,还具有一些特殊的用法,有个清晰的把握是非常有必要的,下面通过本篇文章给大家简单介绍下return语句的作用
    2015-12-12
  • JS中的回调函数(callback)讲解

    JS中的回调函数(callback)讲解

    回调函数是一段可执行的代码段,它作为一个参数传递给其他的代码,其作用是在需要的时候方便调用这段(回调函数)代码,这篇文章主要介绍了JS中的 回调函数(callback),需要的朋友可以参考下
    2022-12-12
  • JavaScript Konami Code 实现代码

    JavaScript Konami Code 实现代码

    JavaScript Konami Code 实现代码
    2009-07-07
  • JS实现三级折叠菜单特效,其它级可自动收缩

    JS实现三级折叠菜单特效,其它级可自动收缩

    这篇文章主要介绍了JS实现三级折叠菜单特效,其它级可自动收缩,需要的朋友可以参考下
    2015-08-08

最新评论