javascript - 移动端web页面,页面内容会随着系统键盘的隐藏而下滑,导致布局错乱
巴扎黑
巴扎黑 2017-04-10 17:05:26
[JavaScript讨论组]

移动端web页面,系统键盘会把html结构往上顶(这个正常),而且当页面里的input失去焦点时,页面内容会随着系统键盘的隐藏而下滑,导致布局错乱,抓包看了下dom结构未动,但是里面的内容滑下了一段距离
有没有大神帮忙解决这个bug

巴扎黑
巴扎黑

全部回复(14)
怪我咯

html结构未动,但是里面内容错位了。手动把页面往上滑,才会恢复,求教

黄舟

推测应该是你内容的定位出现出了问题,你看看你的position是什么,更换下试试,希望能给到你思路

阿神

试试在头部里面加上
<meta name="viewport" content="maximum-scale=1,user-scalable=no">
移动端的很多行为都可以同过meta控制

另外input点击会有浏览器的默认行为 试下e.preventDefault()来限制浏览器默认行为

PHP中文网

preventDefault()

高洛峰

应该就是一些简单的布局问题,找个会前端的朋友帮忙看一看嘛。

伊谢尔伦

我一同事写的h5页面主要基于微信平台,碰到的问题跟你的类似。我先描述一下,页面主要是评论显示区域和底部input输入框,评论区域的高度是根据不同手机高度动态计算设置,刚好把input挤到底部,所以也刚好是一整竖屏显示,测试的时候在华为和红米上出现了你所说的情况:input失去焦点后页面整体的向下移动,页面顶部空出一块区域,用手向上滑动一下就恢复了。那位同事把自己跟其他同事写的显示正常的页面比较,然后修改自己的页面就正常了。后来发现只要页面整体的产生了滑动,哪怕多1px就可以正常的隐藏输入键盘且页面显示正常。至于原因也不清楚。不知道能不能给你些参考和灵感。你后来解决了吗?

巴扎黑

不要使用postion:fixed。。这个在iOS上和个别安卓浏览器上无解。。。

PHP中文网

fixed的容器里放输入框就这样

PHP中文网

body,html{height:100%;width:100%;overflow:hidden}
先这样试试

怪我咯

是否在js里写了和布局相关的代码?没有处理resize的情况?手机上的布局可以看看我的这篇文章,《手机html页面的垂直布局的基本框架》。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号