平常在开发H5
的页面时,会遇到一个很常见的问题,就是当输入框弹出键盘时,底部被顶起,导致页面显示不全或者页面样式错落;
这个问题,一般都是由于input
标签聚焦之后,键盘弹起导致的底部按钮顶上去了;
不过在IOS
上,默认是不对导致按钮顶上去的,但是在Android
上,默认是会顶上去的;这样在混合开发或者H5
就要解决这样的一个兼容问题了;
这里提供一个解决方案,效果看起来也是不错的;
js
// 默认的屏幕高度
const docH = window.innerHeight;
// 实时屏幕高度
let showH = window.innerHeight;
// 默认显示底部按钮
// let hideShow = true;
const bottom = document.getElementById("bottom");
// 监听页面高度的变化
window.addEventListener("resize", () => {
showH = window.innerHeight;
if (docH - showH > 50) {
// 这里用vue的话你可以直接控制
// hideShow = false;
bottom.style.display = "none";
} else {
// hideShow = true;
bottom.style.display = "block";
}
});
效果预览:
然后你就会发现,当键盘弹起的时候底部按钮就消失不见了,键盘落下之后按钮就出来哦;
这个方案基本都可以解决兼容问题呢;