2011-11-28 67 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;會根據您的需要工作。)