overflow : scroll;
是我的问题...
-webkit-overflow-scrolling: touch;
添加这条线使滚动平滑。
最初我认为这是多个 div 堆叠在一起的问题,但后来我对其进行了更彻底的研究,发现这个网站更详细地解释了 iOS 触摸行为:
http ://remysharp.com/2012/05/24/问题与位置固定滚动在 ios/
比我想象的更简单的解决方案。
编辑:
没那么快,现在我有一些元素的显示问题。再次研究并发现:http ://cantina.co/2012/03/06/ios-5-native-scrolling-grins-and-gothcas/
这告诉我使用
-webkit-transform: translate3d(0,0,0);
在所有相关元素上。
当我在我的一些元素上使用它时,这种方法很有效,但它又破坏了其他东西。现在,当我向下滚动时,页面大约需要 3 秒!加载以前不可见的内容...
我想这总比没有好,尽管它几乎感觉 Mobile Safari 是新的 Internet Explorer
将尝试找到另一个修复...
edit2:
我设法让它大部分工作。它仍然有一些显示问题(我的元素的主要背景仍然有 2-3 秒的加载问题),但至少我的其他元素是立即可见的。
我所做的是使用
-webkit-transform: translate3d(0,0,0);
在我最上面的 (id #) 元素之一上,而不是文章中提到的所有相关元素与通用选择器 *{}
为了向后兼容滚动行为,他们提到了一个 polyfill,例如overthrow。