2015-09-11 31 views
0

我試圖做一個動畫時,用戶滾動頁面。我正在使用window.pageYOffset。在Safari中,只要滾動開始,它就會工作,但在Chrome中,它只會在觸摸結束後檢測滾動。如何在發生滾動的時候檢測滾動,而不是在最後?檢測移動Chrome中的滾動

window.addEventListener('scroll', function(e){ 
    var distanceY = window.pageYOffset 
    if (distanceY > 0) { 
     DO STUFF 
    } 
}); 

此功能在桌面瀏覽器和移動版Safari瀏覽器中正常運行,但在移動Chrome瀏覽器中無效。

這是我使用的tutorial,它也有這個問題 - 在移動Safari中,動畫會在屏幕滾動到第二段時發生,但在Chrome中它將保持靜止直到觸摸結束。

+0

據我所知,很多移動瀏覽器會在滾動過程中凍結任何渲染/腳本執行,因爲滾動時重繪可能會超級密集,具體取決於滾動的速度和速度。 – Jared

回答

1

你可以試試下面的代碼:

$('window').on('touchmove', function(event) { 

    event.preventDefault(); 

    var distanceY = window.pageYOffset 
    if (distanceY > 0) { 
    // DO STUFF 
    } 
}); 

也因爲某種原因觸發的Chrome上滾動window.resize事件。您可以在link上找到問題。