iOS 9 -webkit-overflow-scrolling:touch`和`overflow:scroll`打破了滚动function

我正在开发一个web应用程序,我有一个div里面的iFrame隐藏,溢出的内容,我想滚动。

在iOS 9的Safari上添加-webkit-overflow-scrolling:touch; 到div(已经overflow-y: scroll;给滚动一个stream畅的感觉,它打破了,根本不滚动。

我知道这是一个已知的问题,但我还没有find与我的scheme相关的解决scheme:我有iFrames不仅仅是传输数据,他们实际上包含用户的内容。 方向并不重要,内容将始终需要滚动。

我刚刚碰到这个问题,在一个div overflow: autodynamic内容overflow: auto-webkit-overflow-scrolling: touch

肮脏,丑陋的解决方法:当添加到dom时强制内部的内容比滚动div大。 像这样的东西:

 <div style="overflow: auto; -webkit-overflow-scrolling: touch;"> <div style="min-height: 101%"> dynamic content </div> </div> 

我的理论是,当-webkit-overflow-scrolling: touch时,Safari尝试(需要)进行一些繁重的优化-webkit-overflow-scrolling: touch添加了-webkit-overflow-scrolling: touch ,并且这些对于某些types的dynamic内容不太好。

我也遇到了这个问题与webkit-overflow-scrolling: touch iOS9。 它可以在设备或iOS模拟器上复制。 正如克里斯托弗阵营提到的那样,它只发生在dynamic内容上,即内容从小到可滚动的容器变大到容器的大小。

下面是CodePen演示这个问题 ,包括克里斯托弗阵营修复。

看来这个Safari的另一个缺陷是使用javascript来设置一个style="overflow: none"并立即将其重置为以前的值。