相关疑难解决方法(0)

Iphone safari没有在键盘打开时调整视口大小

当弹出键盘时,移动safari不会更新window.innerHeight.(至少在9.3.5中,有几个像这样的答案,评论说在ios 8.2中打破了)

苹果文件 常说,他们编辑它之前是window.innerHeight会回来与iOS 10.

在iOS 10中,WKWebView对象通过在显示键盘时更新其window.innerHeight属性来匹配Safari的本机行为,并且不调用resize事件.

我需要知道在此期间要做什么来处理iphone safari只是将网站推出视图,而不是调整大小.


我有一个应用程序使用绝对定位的一切,并在页眉和页脚之间有一个溢出的div.

.mainContent {
  position: absolute;
  top: 50px;
  bottom: 28px;
  left: 0;
  right: 0;
}
Run Code Online (Sandbox Code Playgroud)

这里的人物.

截图,在android上按预期工作:

在iphone上没有按预期工作:

根据这个答案,我有一个原生的JS方法来确定iPhone键盘是否打开,

    document.getElementById('chat-input').addEventListener('focus', function(){
      if(/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream){
        console.log("IOS focus");
        var scroll = window.scrollTop;
        window.scrollTop = 10;
        var keyboard_shown = window.scrollTop > 0;
        window.scrollTop = scroll;

        if(keyboard_shown){
          console.log("keyboard");
        }else{
          console.log("no keyboard");
        } 
      } 
    });
  })();
Run Code Online (Sandbox Code Playgroud)

但这实际上并没有解决问题,因为window.innerHeight它没有改变,所以我不知道键盘有多大.我可以列出iPhone的分辨率和键盘高度,只是一个可怕的硬编码人...

html css mobile-safari viewport ios

18
推荐指数
3
解决办法
5583
查看次数

将元素放置在移动键盘上方

我试图将一个元素直接放置在移动键盘上方。即:位置绝对/固定到页面底部,但由键盘向上推(或向上推键盘的等效高度)。

通常这与期望的行为相反,并且会有很多人努力保持底层元素到位。我感觉我记得以前也曾经历过同样的战斗……

但现在我想让它动起来,却没有动。(当然!)

我现在的重点是 iOS Safari,但更喜欢跨浏览器。

当键盘打开时,旧版本的 iOS 似乎发生了变化window.innerHeight,无论好坏。但现在情况已不再如此。这可以解释为什么我没有看到我期望看到的东西......

我一直在尝试不同位置的父元素,但没有运气。

这可能吗?或者键盘现在完全与视口分离了吗?

html css css-position

7
推荐指数
1
解决办法
5598
查看次数

标签 统计

css ×2

html ×2

css-position ×1

ios ×1

mobile-safari ×1

viewport ×1