2011-11-28 90 views
6

在移动Web应用程序中,我有一个div,可以使用新的花式-webkit溢出滚动:touch进行滚动。唯一的问题是只有在滚动完成时才会呈现内容。有没有办法让手机Safari(也可能是其他移动浏览器,像Android那样)在单指滚动期间呈现html?Safari中的单个手指滚动直到滚动完成后才呈现html

.layer-content { 
    position: absolute; 
    top: 112px; 
    bottom: 0; 
    width: 100%; 
    background: #e6e6e6; 
    overflow-y: scroll; 
    -webkit-overflow-scrolling: touch;  
} 
+2

不是真的。这只是iPhone的工作方式。如果滚动,所有资源都用于使滚动非常平滑,但不会显示新部件。你可能会愚弄浏览器,认为图层更大,增大图层,并在不想显示的部分上添加图层,但这不适用于所有布局。我会放弃它。用户习惯于它,因为普通页面具有相同的“呈现问题”。 – Gerben

+0

谢谢你,加文。这适合我。有什么方法可以将您的评论标记为这个问题的答案? – FreeCandies

+1

现在你可以。见下文。 :-) – Gerben

回答

3

不是。这只是iPhone的工作方式。如果滚动,所有资源都用于使滚动非常平滑,但不会显示新部件。你可能会愚弄浏览器,认为图层更大,增大图层,并在不想显示的部分上添加图层,但这不适用于所有布局。我会放弃它。用户习惯于它,因为普通页面具有相同的“呈现问题”。

1

位置:绝对是搞乱了渲染。移动Safari不会渲染没有定位标准值的元素,直到滚动停止为止。

如果位置是auto(默认值),Mobile Safari会在您滚动时渲染元素。

+0

这是正确的。有不同的处理布局渲染的方法(如果我没有记错的话,可以使用全卷,滚动条等),例如。位置属性设置为绝对将会将布局渲染降为较慢的方法。 相同的行为发生在一些移动设备,例如。当使用box-shadow或CSS渐变时。 – zvona

4

您可以使用硬件加速来解决此问题。尝试添加以下的CSS元素中.layer-content

-webkit-transform: translate3d(0,0,0); 
0

我敢肯定织补我只是解决了这个有:

overflow-y: auto; 

是添加到您的滚动元件。

(推测只是overflow: auto;会根据您的需要工作。)