手机端软键盘弹出又收回后,页面下方留空白、样式定位错乱或不能滚动
手机端的兼容性非常多,其中软键盘导致页面错误及滚动问题也很常见!
原因:软键盘弹出和收回时页面的高度会随之变化,所以常伴有页面样式定位错乱或页面滚动的问题存在!
实现:通过监听页面尺寸变相的实现监听软键盘是否弹出或收回,每次弹出或收回时强制将页面高度重置为初始高度!
html代码
<div class="overflow-auto" :style="'height:'+scrollerHeight+'px'" > 内容 内容 内容 内容 内容 </div>
js代码
created() { // 页面初始高度 const originalHeight=document.documentElement.clientHeight ||document.body.clientHeight; this.scrollerHeight = originalHeight // 监听可视区高度变化 - 防治软键盘弹起后页面不可滚动 window.onresize = ()=>{ return(()=>{ // 键盘弹起与隐藏都会引起窗口的高度发生变化 const resizeHeight=document.documentElement.clientHeight || document.body.clientHeight; // console.log("进入到判断页面高度========="); // console.log("页面初始高度========="+originalHeight); // console.log("软键盘弹起高度========="+resizeHeight); // console.log(originalHeight-resizeHeight) if(originalHeight-resizeHeight>0){ // 当软键盘弹起,在此处操作 // console.log("进入到软键盘弹起========="); document.querySelector('body').setAttribute('style', 'height:'+originalHeight+'px;'); this.scrollerHeight = originalHeight; }else{ // 当软键盘收起,在此处操作 // console.log("进入到软键盘收起========="+originalHeight); document.querySelector('body').setAttribute('style', 'height:'+originalHeight+'px;'); this.scrollerHeight = originalHeight; } })() } },
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现