iPhone 浏览器中 fixed 输入框 打开软键盘后 页面整体上移?

发布于 2022-09-03 13:04:37 字数 1313 浏览 29 评论 0

我知道这标题可能比较抽象,
举个例子来讲,有这样一个页面:

<!doctype html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="initial-scale=1,maximum-scale=1,minimum-scale=1">
    <title>test</title>

    <style>
        .head{
            position: fixed;
            width: 100%;
            height: 50px;
            left: 0;
            top: 0;
            background: red;
        }
        .foot{
            position: fixed;
            width: 100%;
            height: 50px;
            left: 0;
            bottom: 0;
            background: blue;
        }
        .foot .input{
            width: 300px;
            height: 30px;
        }
    </style>
</head>
<body>
    <div class="head"></div>

    <div class="foot">
        <input type="text" class="input">
    </div>
</body>
</html>

在 ios Safari 中打开是这样子的:
图片描述
这并没有什么问题,

问题是 当打开虚拟键盘之后 变成了这样子:
图片描述
注意 顶部 .head 那个div 消失了~

不知道有没有人遇到过跟我一样的问题,求指教。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

地狱即天堂 2022-09-10 13:04:37

首先本人不支持在移动端开发过程中用fixed做导航定位。有的老板的苹果系统本身都不支持fixed,这回出一系列问题。至于页面整体往上移这种情况确实是存在的。

夜未央樱花落 2022-09-10 13:04:37

是的,我也遇到这个问题,页面整体向上推,最后我没处理这块,就那样了,据说可以用绝对定位,然后js坚挺input事件,算与底部的距离

够运 2022-09-10 13:04:37

谢谢邀请,但是比较抱歉,感觉并不能很好帮助题主回答这个问题。我曾经用swift的第三方库或者直接控制view的显示,但是显然,题主用的是html和我上面说的并不是一回事。
这应该是ios系统下,键盘事件触发,导致position:fixed失效,导致的显示问题~
题主可以看看下面的两个网站,希望对你有帮助啦~~~
传送门
传送门

梦在深巷 2022-09-10 13:04:37

试试scrollIntoView。

岁月流歌 2022-09-10 13:04:37
setInterval(function() {
    document.body.scrollTop = document.body.scrollHeight;
}, 300);

网上看到别人的perfect解决方案

べ映画 2022-09-10 13:04:37

点击小球切换键盘,页面又下移几十px,奇葩,而且监听键盘事件唯独这个小球没反应;怎么解决

晨曦慕雪 2022-09-10 13:04:37

和你一样的问题 想问你解决了吗

清旖 2022-09-10 13:04:37

我也有这种问题,请问有解决的方法么

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文