iOS网页应用:禁用输入文本字段的自动对焦功能。

4
我有一个简单的iOS Web应用程序问题。
当您创建输入文本字段时,用户单击文本字段,移动版Safari将自动对焦输入字段,并自动将用户单击的输入字段移动到屏幕中心。可视键盘将画布推向顶部或左侧或任何可以使输入字段居中的空间。
好吧,我正在尝试禁用输入字段上的自动对焦,以便用户单击输入字段时,画布不会移动或动画,画布像固定一样留在屏幕上,并且可视键盘可能会重叠输入字段。(尝试通过JavaScript或CSS实现)

1
他们花了很多心思来完成那个。我认为你无法通过Javascript阻止那个。 - Grumpy
抱歉,可能无法实现。 - kettlepot
2个回答

7

我之前遇到过这个问题,一个为iPad构建的固定大小的Web应用程序由于浏览器试图将文本字段居中显示而部分滚动出视图。

在表单的父元素中设置 'position:fixed' 可以防止此情况发生。'position:absolute' 允许移动。根据您的布局,将表单设置为 'position:fixed' 可能会有所帮助。

position: fixed;

编辑:处理iOS固定大小webapp上的表单时还有一件相关的事情:当文本字段处于激活状态时,如果用户拖动手指,可能会将整个固定元素移动到屏幕上(基本上滚动了您不想滚动的UI)。 如果您发现出现这种情况,可以为表单添加touchmove事件处理程序并防止默认操作。

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

1
谢谢,这对我解决了一个奇怪的问题。当iOS弹出键盘关闭并重新打开时,它会稍微移动Web视图。 - V_H

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接