2011-08-29 93 views
1

對於scrollTo來說簡單的問題。我正在尋找一種防止滾動動畫排隊的方法。我試圖在stop()中工作,但它似乎沒有做到這一點。任何想法?這裏的代碼...jquery scrollTo防止隊列

( '#nav_hold李一')點擊(函數(){

$ currLoc = $(本).attr( 'href' 屬性);

$newLoc = $currLoc.replace('#!',''); 

$ newLoc = 「#」 + $ newLoc;

$(窗口).scrollTo($ newLoc,1000);
});

這裏的場地FYI http://www.dudnyk.com/files/connector/

回答

0
{ queue : false } 

爲scrollTo選項

但是這是默認的。錨點擊不會讓你到達某個地方嗎?

+0

沒有運氣,仍在排隊,請檢查我上面提供的鏈接... –

+0

此隊列引用單個滾動事件中的x/y動畫。這與排隊的動畫滾動事件無關,因此完全不相關。請刪除此答案或編輯。 –

1

.stop()是去除當前正在運行的動畫,也明確要排隊使用.stop(true)

$('#about').click(function() { 
    $(this).stop(true); 
    $.scrollTo('#about', 1000); 
}); 

從jQuery的文檔(上面鏈接):

如果多個動畫方法被調用相同的元素,後面的動畫放置在元素的效果隊列中。 這些動畫直到第一個動畫完成纔會開始。當調用 .stop()時,隊列中的下一個動畫立即開始。 如果clearQueue參數的值爲true,那麼會刪除隊列中剩餘的動畫,並且不會運行。

0

當您在任何元素上使用$.scrollTo時,它實際上是滾動(動畫)文檔,直到滾動到達指定元素。所以我相信我們應該停止文檔上的動畫。試試這個

$('#about').click(function() { 
    $(window).stop(); 
    $.scrollTo('#about', 1000); 
}); 
+0

沒有運氣,依然在排隊,檢查我上面提供的鏈接... –

+0

試試我編輯的答案。 – ShankarSangoli

+0

'$(window).stop();'完美的我試過了。 – ShankarSangoli

7

我有同樣的問題,但我發現這裏的解決方案http://usejquery.com/sites/contrast-rebellion

只要使用任何新的scrollTo前行 jQuery.scrollTo.window().queue([]).stop();

+1

+1以獲得最佳解決方案。 Afaik'$ .scrollTo.window()。stop(true);'應該做同樣的事情。無論如何都適用於我的使用情況。 – foochow