如果不是 body 元素,Android 无法正确滚动输入焦点 [英] Android does not correctly scroll on input focus if not body element
本文介绍了如果不是 body 元素,Android 无法正确滚动输入焦点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当移动浏览器调出键盘时,它会尝试移动滚动条,以便输入仍在视图中.
在 iOS Safari 上,它似乎通过找到最近的滚动父级来正确执行此操作.
在 Android 原生或 Chrome 移动浏览器上,它似乎只是尝试使用 body 元素然后放弃,因此焦点输入隐藏在键盘下方.
如何破解
在 body 元素上设置 overflow-y: hidden
.创建一个可滚动的容器并在其中放置一个表单.
当您选择屏幕底部附近的元素时,它会被键盘遮挡.
演示
http://dominictobias.com/android-scroll-bug/
<头><元名称=视口"content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"/><title>Android 滚动/焦点错误</title><风格>html,正文{边距:0;填充:0;高度:100%;溢出:隐藏;}.滚动{位置:绝对;顶部:0;右:0;底部:0;左:0;溢出-y:滚动;}输入 {底边距:20px;宽度:100%;}</风格>头部><身体><div class="scroll"><输入类型=文本"值=输入1"><输入类型=文本"值=输入 2"><输入类型=文本"值=输入 3"><输入类型=文本"值=输入 4"><输入类型=文本"值=输入 5"><输入类型=文本"值=输入 6"><输入类型=文本"值=输入7"><输入类型=文本"值=输入8"><输入类型=文本"值=输入 9"><输入类型=文本"值=输入 10"><输入类型=文本"值=输入 11"><输入类型=文本"值=输入 12"><输入类型=文本"值=输入 13"><输入类型=文本"值=输入 14"><输入类型=文本"值=输入 15"><输入类型=文本"值=输入 16"><输入类型=文本"值=输入 17"><输入类型=文本"值=输入 18"><输入类型=文本"值=输入 19"><输入类型=文本"值=输入 20">