【发布时间】:2015-09-25 16:00:14
【问题描述】:
在 iOS 8 的 Safari 上,当我关注 <input> 元素时,整个页面突然跳下,然后返回到原来的位置。我的页面布局填满了整个屏幕,不打算滚动。
这似乎与在here 和here 以及this video 中观察到的错误相同。这些情况下的解决方案是针对 Cordova 应用程序,但我不是在构建 Cordova 应用程序,我只是在为 Mobile Safari 制作一个网站。
我尝试按照建议的here 添加html, body { position: fixed; },但没有奏效。
我会尝试使用许多人之前提供的ontouchmove 建议“禁用滚动”,但这不是用户触发的滚动,而是自动滚动。
我已尝试按照建议的here 添加onfocus="window.scrollTo(0, 0);",但这没有用,我不希望它对该答案发表评论:
这似乎应该可以工作,但它不适用于我在 Safari 中使用 iOS 8 的 iPhone 5S。
event.preventDefault()结合您的解决方案似乎肯定会起作用,但我仍然得到默认的滚动行为。 – 本尼 3 月 17 日 17:53
如何防止这种反弹?
【问题讨论】:
-
您将不得不包含一些代码来重现该问题。你不能指望我们通过一个远程链接来查找问题,即使我们这样做了,一旦页面发生变化,问题就没有意义了。
-
我明白,我添加了一个链接到我们的 web 应用程序,它演示了这种行为。目前正在创建最小的演示,以便我可以发布一些代码。
标签: javascript html ios css input