Phonegap输入重点关注Mobile Safari

时间:2012-09-13 23:47:03

标签: javascript iphone ios cordova

每次用户关注我的Phonegap应用程序中的输入字段时,我都会使用以下代码将窗口滚动到位置(0, 0)

<input type="text" id="answer" class="answer" />
...

$(document).on("touchstart", ".answer", function() {
  window.scrollTo(0, 0);
});

我也尝试了setTimeout(),但这也不起作用:

$(document).on("touchstart", ".answer", function() {
  window.scrollTo(0, 0);
  setTimeout(function() {
     scrollWindow();
  }, 10);

  var scrollWindow = function() {
     window.scrollTo(0, 0);
  }
});

问题是窗口仅在我第二次点击输入字段时滚动。当我第一次点击输入字段时,我希望窗口立即滚动。

我移动窗口的原因是因为iOS会在输入字段的焦点上生成本机键盘并将整个视图向上移动。

1 个答案:

答案 0 :(得分:1)

要做到这一点,我通常使用“焦点”而不是“touchstart”。

$('#someFormId input').on("focus", function(event) {
    window.scrollTo(0, 0);
    document.body.scrollTop = 0;
});