我正在使用一些JavaScript来在网站上显示交互式填字游戏。我在网上看到的所有版本(例如《纽约时报》)都在移动设备上显示了自己的键盘,但我更希望使用操作系统或浏览器提供的键盘。
到目前为止,我已经创建了一个input
元素,并将其移到屏幕外向左隐藏。 (是否有更好的方法?display: none
和visibility: hidden
都不将键盘显示在焦点上。)当用户单击填字游戏中的单元格时,我将input
元素聚焦,然后弹出键盘起来不幸的是,Safari也垂直滚动以使文本框居中。即使我打电话给input.focus({preventScroll: true})
,也会发生这种情况。
向后滚动到单元的位置会导致不愉快的抖动。到目前为止,我发现的最好的解决方案是在调用input
之前将focus
元素垂直居中,但这似乎很棘手。有没有更好的办法?
答案 0 :(得分:0)
我遇到了同样的问题,直到遇到此线程,才找到解决方案:
jquery mobile How to stop auto scroll to focused input in Mobile web browser
应用上述解决方案后,它现在可以正常运行,并且safari不再滚动到顶部。