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: auto
dynamic内容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"
并立即将其重置为以前的值。