2011-07-08 42 views
3

我有一个简单的iOS Web应用程序的问题。iOS的web应用程序:禁用输入文本字段的自动对焦

当您创建输入文本字段时,用户单击文本字段,移动Safari会自动对焦输入字段,自动将用户点击的输入字段移动到屏幕中心。视觉键盘将画布推到顶部或左侧,或者无论他们可以将输入字段居中的空间。

那么,我想要做的是禁用输入字段的自动对焦,以便用户点击输入字段,画布不会移动或动画,画布留在屏幕上像固定,和视觉键盘可能会与输入字段重叠(试图通过Javascript或CSS实现)

+1

他们付出了很多努力来完成这一点。我不认为你可以通过JavaScript停止。 – Grumpy

+0

对不起,可能无法做到。 –

回答

5

我有一个固定大小的web应用程序(为iPad构建)因浏览器部分滚动查看而出现此问题,因为它试图在视图中居中文本字段。

在窗体的父元素之一上设置'position:fixed'可以防止这种情况发生。 'position:absolute'允许移动。根据您的布局,将表单设置为'position:fixed'可能对您有所帮助。

position: fixed; 

编辑:对于一个固定大小的iOS web应用程序处理表单还有一个相关的事情:当文本字段处于活动状态,如果用户拖动他们的手指有可能需要将整个固定元素(基本上滚动一个你不打算滚动的UI)。如果您发现这种情况发生,您可以向表单添加touchmove事件处理程序并阻止默认操作。

//jQuery: 
$('#myForm').bind('touchmove', function(ev) { ev.preventDefault(); }); 
// Or not: 
document.getElementById('myForm').addEventListener(
    "touchmove", 
    function(ev) { 
     ev.preventDefault(); 
    }, 
    false 
); 
+1

谢谢,这有助于我在iOS弹出式键盘在关闭和重新打开键盘时略微移动了网页视图时遇到的奇怪问题。 –

0

最简单的方法是在页面顶部的任何div上设置“tabindex = 0”。

相关问题