android - 当屏幕键盘打开时,带有溢出隐藏的正文会导致移动设备中的元素处于负位置
问题描述
我需要使 body 和 html 标签上的滚动失效并激活子元素上的滚动。
因此,我的代码中有这个 CSS:
html,
body {
margin: 0;
height: 100%;
overflow: hidden;
}
我的代码在桌面上正常工作,但是当我在移动浏览器中使用我的网络应用程序时问题就开始了。
我在这个沙箱中做了一个示例代码,你可以在你的手机浏览器中通过这个 URL https://7m390.csb.app/打开它。
问题是什么?
在移动设备中打开应用程序,然后一定会看到如下内容:
然后将光标放在页面底部的其中一个输入框上,打开屏幕键盘。
当屏幕键盘打开时,它将元素向上推,元素获得负 y 位置。
现在关闭屏幕键盘,元素将保持其负 y 位置。
这些图片显示了我的手机上的应用程序,带有 Chrome 的远程调试,如果你用 chrome 移动模拟器打开应用程序,即使使用它的屏幕键盘也不会看到这个错误!
在我的真实应用程序中,我有一个启用了滚动的包装器,我将在调整页面大小时设置它的高度。我没有将包装器放在这里以简化问题并阐明问题的根源。
我唯一需要的是防止在打开屏幕键盘时将元素推到负位置。
解决方案
推荐阅读
- reactjs - React SVG不会在属性更新时重新渲染
- python - 每次访问时更改的模拟属性
- c++ - 如何使用字符串将无效操作数修复为二进制表达式?
- perl - 来自 CSV 文件的 Undef 值会产生不良结果
- android - 当我想用 epson TM T20 打印我的票时,我可以打印我的票,但异常状态 err_illegal 到 affich
- c# - 贝尔曼-福特负循环前身不存在
- c# - 如何使用 LINQ 在字典中查找元素
- php - SQL 查询在 PHP 中不起作用,没有数据插入数据库
- python - 从 Ruby 移植到 Python:如何处理“yield”
- c# - 将游戏上传到 Gamejolt(不下载)?