防止iOS 11将输入元素放在焦点上

时间:2018-08-16 10:01:48

标签: javascript ios css

我正在使用一些JavaScript来在网站上显示交互式填字游戏。我在网上看到的所有版本(例如《纽约时报》)都在移动设备上显示了自己的键盘,但我更希望使用操作系统或浏览器提供的键盘。

到目前为止,我已经创建了一个input元素,并将其移到屏幕外向左隐藏。 (是否有更好的方法?display: nonevisibility: hidden都不将键盘显示在焦点上。)当用户单击填字游戏中的单元格时,我将input元素聚焦,然后弹出键盘起来不幸的是,Safari也垂直滚动以使文本框居中。即使我打电话给input.focus({preventScroll: true}),也会发生这种情况。

向后滚动到单元的位置会导致不愉快的抖动。到目前为止,我发现的最好的解决方案是在调用input之前将focus元素垂直居中,但这似乎很棘手。有没有更好的办法?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,直到遇到此线程,才找到解决方案:

jquery mobile How to stop auto scroll to focused input in Mobile web browser

应用上述解决方案后,它现在可以正常运行,并且safari不再滚动到顶部。