uni-app H5键盘弹起时有时会遮挡到input框,此BUG比较随机
uni-app H5键盘弹起时有时会遮挡到input框,此BUG比较随机
操作步骤:
- 1
预期结果:
- 1
实际结果:
- 1
bug描述:
| 信息类别 | 详情 |
|---|---|
| 产品分类 | uniapp/H5 |
| PC开发环境 | Windows |
| 操作系统版本号 | Windows 10 专业版 20H2 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.1.18 |
| 浏览器平台 | 微信内置浏览器 |
| 浏览器版本 | 8.0.3 |
| 项目创建方式 | HBuilderX |
更多关于uni-app H5键盘弹起时有时会遮挡到input框,此BUG比较随机的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
更多关于uni-app H5键盘弹起时有时会遮挡到input框,此BUG比较随机的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个在H5端常见的兼容性问题,特别是在移动端浏览器中。键盘弹起遮挡输入框的主要原因是键盘弹起时窗口可视区域(viewport)高度变化,但页面布局未能及时适配。
解决方案:
- 监听窗口尺寸变化
onLoad() {
window.addEventListener('resize', () => {
const activeElement = document.activeElement
if (activeElement.tagName === 'INPUT' || activeElement.tagName === 'TEXTAREA') {
activeElement.scrollIntoView({behavior: 'smooth', block: 'center'})
}
})
}
- 使用CSS适配
/* 确保页面可滚动 */
page {
height: 100vh;
overflow-y: auto;
}
/* 输入框获得焦点时调整位置 */
input:focus, textarea:focus {
transform: translateY(-50%);
transition: transform 0.3s ease;
}
- uni-app特定方案
// 在页面中使用uni.pageScrollTo
onFocus() {
uni.pageScrollTo({
scrollTop: 0,
duration: 300
})
}

