首页 > 解决方案 > 防止 iOS 11 将输入元素居中放在焦点上

问题描述

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

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

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

标签: javascriptioscss

解决方案


推荐阅读