js 移动端关于页面布局,如果底部有 position: fixed 的盒子, 又有input,当软键盘弹出收起都会影响页面布局。
如图:

页面这时候Android可以监听resize事件,代码如下,
注意:ios没有相关事件。所以此方法不兼容ios
// 键盘弹出/收起
const originalHeight = document.documentElement.clientHeight ||
document.body.clientHeight
window.onresize = () => {
return (() => {
// 键盘弹起与隐藏都会引起窗口的高度发生变化
const resizeHeight = document.documentElement.clientHeight ||
document.body.clientHeight
// console.log('进入到判断页面高度=========')
// console.log('页面初始高度=========' + originalHeight)
// console.log('软键盘弹起高度=========' + resizeHeight)
if (resizeHeight - 0 < originalHeight - 0) {
// 当软键盘弹起,在此处操作
console.log('进入到软键盘弹起=========')
} else {
// 当软键盘收起,在此处操作
console.log('进入到软键盘收起=========')
}
})()
}
在JavaScript移动端开发中,当页面底部包含固定定位的元素且有输入框时,软键盘的弹出和收起会影响页面布局。Android可以通过监听resize事件来处理这种情况,但该方法不适用于iOS。提供的代码示例展示了如何在Android上检测软键盘的状态,以进行相应的布局调整。对于iOS,需要寻找其他兼容的解决策略。
1万+

被折叠的 条评论
为什么被折叠?



