2014-12-22 48 views
3

我使用一些簡單的代碼來讓頁面滾動到某個點時出現一個項目。代碼在技術上有效,但是延遲很大。我有代碼console.log一些調試值(滾動位置)。我發現,if語句沒有運行,直到滾動停止後(或者當我看到的console.log「追趕」):爲什麼我在jquery中使用scroll()時會得到延遲?

$(window).scroll(function(){ 
    if($(window).scrollTop() >= 350) { 
     $('#logo').animate({'opacity':'1'}); 
    } else { 
     $('#logo').animate({'opacity':'0'}); 
    } 
}); 

這裏是一個jsfiddel:http://jsfiddle.net/nzcxwdmx/1/

你」我會注意到,如果你等待足夠長的時間,「logo here」這個詞就會出現。你越滾越過350,時間越長。

+0

默認值持續時間(默認值:400)。嘗試玩默認值。 –

回答

0

您使用的它defaul動畫時間值instade使用requred時間值動畫

fiddle

實施例代碼

$(window).scroll(function(){ 
    var spos = $(window).scrollTop(); 
    $('#scroll').text(spos); 
    if(spos >= 350) { 
     $('#logo').animate({'opacity':'1'},200); 
    } else { 
     $('#logo').animate({'opacity':'0'},200); 
    } 
}); 
+0

這不是動畫的時機問題。一旦滾動過350,動畫開始需要很長時間。當它達到351或更高時,我需要它顯示並在350或更低時隱藏。同樣,它確實隱藏並顯示這些值,但是到達這一點需要很長的時間。 – dcp3450

相關問題