• 移动端解决高度设为100vh时,页面超出窗口问题

问题引入:在做uniapp和微信小程序项目时,在底部或者顶部存在原生tabar和导航栏时,将整个页面最外面的高度设为100vh(目的是想其撑满整个界面),结果因为tabar和导航栏高度的存在,页面设为100vh(百分百高度)过于满了,会产生滚动条,如下两图,设置100vh后,可以将整个页面拉上来,然后上面部分被顶部掩盖住了

请添加图片描述
请添加图片描述

  • 解决方案:uni.getWindowInfo

1、uniapp

官方文档:

https://uniapp.dcloud.net.cn/api/system/getWindowInfo.html#getwindowinfo

请添加图片描述

利用这个api可以获取可使用窗口的高度,或者可使用窗口底部或顶部的位置
通过这个距离,动态设置CSS里的高度,即可在有导航栏的情况下,还能正确的将页面撑满

动态设置CSS样式代码:

HTML:

<view class="contentD" :style="{height:btom}">
想让这个div撑满整个页面
</view>
JS:

export default {
		data() {
			return {
				btom:""
			}
		},
		mounted() {
			this.btom = uni.getWindowInfo().windowHeight+"px"
			console.log(this.btom);
		}
	}
CSS不用再特定设定高度

2、微信小程序

小程序和uniapp解决办法差不多,这里就不赘述了

https://developers.weixin.qq.com/miniprogram/dev/api/base/system/wx.getWindowInfo.html

请添加图片描述

目前在H5端和移动端写了几个页面测试了一下,都没有什么问题,如果大家有什么问题或者有更好的解决方法请给我留言

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐