2017-06-01 52 views
0

我想根據窗口滾動使用jQuery此菜單的高度動畫。在向下滾動時它可以正常工作,但是當滾動時,動畫中出現延遲,我不明白。代碼:jQuery:與滾動功能上的延遲問題的動畫()方法

$(window).scroll(function() { 

    if ($(this).scrollTop()>0) 
    { 
     $('.menu').animate({height:'40px'}); 
    } 
    else 
    { 
     $('.menu').animate({height:'100px'}); 
    } 
}); 

此外,如果我使用的方法淡出()和淡入(),代碼工作正常。爲什麼?

+0

此刻,當你滾動它觸發了動畫函數乘法時間,我認爲這是問題的重要部分。添加一個標誌或某種你可以檢查的類來防止這種情況發生。 – drip

回答

0

基於@drip的暗示,我設法到達此解決方案:

$(window).scroll(function() { 
    var top = $(window).scrollTop(); 

    if (top > 0) { 

     $(".menu").stop().animate({height: '50px'}, 100); 
    } else { 

     $(".menu").stop().animate({height: '100px'}, 100); 
    } 
}) 

stop()方法保持動畫被多次觸發