Phonegap iOS - 防止在输入焦点上滚动

时间:2013-01-14 22:26:42

标签: javascript ios cordova

我正在使用Phonegap创建一个iPad应用程序。该应用程序具有固定的横向方向和沿顶部运行的菜单,右上方有一个文本框。该应用程序是固定的(全屏)尺寸,不需要滚动。

当用户触摸iOS 6右上角显示的文本框时,整个应用程序向左滑动,以便将文本框放在屏幕中央,向左推动整个应用程序并在右侧留下空白区域

如何防止此行为?

我目前将UIWebViewBounce设置为NO并使用以下代码来捕获touchstart事件:

document.body.addEventListener('touchmove', function(e) {
    e.preventDefault();
}, false);

我在文本框上也有这个,这似乎适用于iOS 5(虽然有口吃)但在iOS 6上没有:

$('#searchText').on("focus", function(event) {
    window.scrollTo(0, 0);
});

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

尝试在onfocus中的input属性中添加此javascript,以便在关注时不想转移:

<input onfocus="this.style.webkitTransform = 'translate3d(0px,-10000px,0)'; webkitRequestAnimationFrame(function() { this.style.webkitTransform = ''; }.bind(this))"/>

答案 1 :(得分:-1)

尝试将以下css样式添加到您的身体元素:

-webkit-touch-callout: none; 
-webkit-user-select: none; 
-khtml-user-select: none; 
-moz-user-select: none; 
-ms-user-select: none;
 user-select: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);

它阻止用户选择链接和其他内容。也许这对你来说很有帮助。