在Trigger.io中打开iOS7软键盘时,重新调整视口高度

时间:2014-08-01 00:31:27

标签: html5 trigger.io iphone-softkeyboard

当在android中打开软键盘时,视口会自动调整大小以适应屏幕(设备高度 - 键盘高度)。在iOS7中,视口被简单地向上推(上半部分没有显示)。

虽然它可能是某些应用程序所需的行为,但它对我来说效果不佳 - 顶部导航栏被隐藏,我的内容是一个可滚动的div - 我希望用户能够一直滚动起来。

键盘打开/关闭时调整机身手册的大小会导致抖动行为

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我有完全相同的要求。解决方案是在显示键盘时降低车身高度和固定内容区域移动的混合。这就是使用jQuery代码的样子:

$(document).on("focus", "input, textarea", function() {
  $(‘html’).addClass("keyboard");

  setTimeout(function() {
    window.scrollTo(0,0);
    document.body.scrollTop = 0;
  }, 0);
});

$(document).on("blur", "input, textarea", function() {
  $(‘html’).removeClass("keyboard");
});

和相应的CSS:

body {
  position: absolute;
  top: 0;
  bottom: 0;
}

.keyboard body {
  bottom: 240px; /* exemplarily value */
}

需要调整底部值以匹配iPhone纵向,iPhone横向,iPad纵向和iPad横向上的正确键盘高度。

我暂时没有测试过这段代码,所以也许你可以检查一下这是否适用于你而没有任何闪烁?如果我没记错的话,我在Mobile Safari中有轻微的闪烁,但它在原生WebView中运行良好。