【发布时间】:2011-02-26 10:14:53
【问题描述】:
我正在构建一个 iphone webapp 并有一个带有输入字段的页面。我希望该字段在出现时向上滚动到虚拟键盘的正上方。我尝试在输入焦点事件上放置一个 scrollTo(x,y) (即在键盘出现之前),但是当我开始输入时,页面再次向上滚动(可能基于默认的移动 safari 行为)。我还尝试设置按键事件处理程序,但阻止这些事件的传播只是禁用了键盘,尽管它确实阻止了滚动。
当虚拟键盘出现时,有什么方法可以强制页面位于特定位置(输入字段就在键盘上方),而当我继续输入时它不会移动?
【问题讨论】:
-
我不认为有解决这个问题的方法,它也类似于 iphone 上 textareas 内部的问题 - 虽然文本区域更糟糕,因为它会改变你的缩放比例您完成了对内容的编辑(如果您禁用缩放功能,这真的很糟糕,因为您希望它的行为类似于网络应用程序,因为如果不关闭应用程序就无法返回首选缩放设置。)。
-
@我不确定我是否同意上面的评论。如果您正在创建一个 Web 应用程序,您必须考虑来自不同 Web 浏览器(包括移动浏览器)的不同行为 - 但总的来说,我在移动 safari 上描述的表单没有遇到问题。 @spinlock 您是否专门为移动浏览器设计了一个 web 应用程序?你用的是什么SDK? Dashcode 还是其他?您是否允许滚动容器 DIV?您的页面是否刚好适合屏幕但不滚动?其中一些答案可能会帮助我们解决您的问题。
-
嘿@spinlock 您是否设法在打字时将输入固定在一个地方?提前致谢
-
请在stackoverflow.com/a/37639158/3151014查看我对同一问题的回答。
标签: javascript iphone web-applications mobile-safari