相关疑难解决方法(0)

如果不是body元素,Android无法正确滚动输入焦点

当移动浏览器调出键盘时,它会尝试移动滚动条,以便输入仍在视图中.

在iOS Safari上,它似乎通过查找最近的滚动父级来正确执行此操作.

在Android原生或Chrome移动浏览器上,它似乎只是尝试身体元素然后放弃,因此焦点输入隐藏在键盘下方.

 如何打破它

设置overflow-y: hidden在body元素上.创建一个可滚动的容器并在其中放置一个表单.

当您选择靠近屏幕底部的元素时,它将被键盘遮挡.

演示

http://dominictobias.com/android-scroll-bug/

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"/>
    <title>Android scroll/focus bug</title>
    <style>
    html, body {
        margin: 0;
        padding: 0;
        height: 100%;
        overflow: hidden;
    }
    .scroll {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        overflow-y: scroll;
    }
    input {
        margin-bottom: 20px;
        width: 100%;
    }
    </style>
</head>
<body>

    <div class="scroll">
        <input type="text" value="Input 1">
        <input type="text" value="Input 2">
        <input type="text" value="Input 3">
        <input type="text" value="Input 4"> …
Run Code Online (Sandbox Code Playgroud)

android scroll google-chrome focus input

16
推荐指数
3
解决办法
2万
查看次数

标签 统计

android ×1

focus ×1

google-chrome ×1

input ×1

scroll ×1