扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要介绍了如何解决layer弹出层自适应页面大小的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
成都创新互联公司服务项目包括浑江网站建设、浑江网站制作、浑江网页制作以及浑江网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,浑江网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到浑江省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!网上的解决方案大都是以下几种:
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弹出层自适应页面大小的问题”这篇文章对大家有帮助,同时也希望大家多多支持创新互联成都网站设计公司,关注创新互联成都网站设计公司行业资讯频道,更多相关知识等着你来学习!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、网站设计器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流