2011-10-19 22 views
3

我有這段代碼。停止jQuery做它的事情?

$(document).ready(function() { 
$('#box').hide(); 
$(window).bind('scroll', function(){ 
    if($(this).scrollTop() > 200) { 
     $("#box").fadeIn(300); 
    } 
    else { 
    $("#box").fadeOut(300); 
    } 
}); 
}); 

所以,當我向下滾動200px時,它會使div出現。當我向後滾動時,它會消失。這很好,直到我做了很多。

如果我像一個堅果一樣向上和向下滾動,即使我停止後,div仍然保持淡入淡出狀態。這與這個實例無關,過去發生過很多事情,我一直想知道如何解決這個問題(通過儘快停止它,而不是每次我滾動上下滾動)。

這可能嗎?

+1

呀很好的問題要好得多。自己想過這個。 – griegs

回答

0

.clearQueue()工作超過.stop()

1

使用stopdocs功能

您只需分別撥打$('#box').stop(true,true).fadeIn(300);$('#box').stop(true,true).fadeOut(300);即可

1

嘗試在更多動畫排隊之前使用stop()編:

$(document).ready(function() { 
    $('#box').hide(); 
    $(window).bind('scroll', function(){ 
     if($(this).scrollTop() > 200) { 
      $("#box").stop().fadeIn(300); 
     } 
     else { 
      $("#box").stop().fadeOut(300); 
     } 
    }); 
}); 

在這裏看到的文檔:http://api.jquery.com/stop/

1

你必須停止功能添加到您的隊列是這樣的: $( '#箱')停止(真).fadeOut(300);

功能停止()說明:see here