【问题标题】:iOS web app: disable autofocus on input text fieldiOS Web 应用程序:禁用输入文本字段的自动对焦
【发布时间】:2011-10-01 14:43:12
【问题描述】:

我有一个简单的 iOS 网络应用问题。

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

好吧,我要做的是禁用输入字段上的自动对焦,以便用户单击输入字段,画布根本不会移动或动画,画布像固定一样留在屏幕上,并且可视键盘可能会重叠输入字段。(尝试通过Javascript或CSS实现)

【问题讨论】:

  • 他们为此付出了很多努力。我不认为你可以通过 javascript 阻止它。
  • 对不起,这可能是不可能的。

标签: javascript html css ios ipad


【解决方案1】:

在固定大小的 web 应用程序(为 iPad 构建)被浏览器部分滚动出视图之前,我遇到过这个问题,因为它试图在视图中居中显示文本字段。

在表单的父元素之一上设置“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
);

【讨论】:

  • 谢谢,这解决了我在关闭和重新打开键盘时 iOS 弹出式键盘略微移动网页视图时遇到的一个奇怪问题。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-30
    • 2011-10-09
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    相关资源
    最近更新 更多