2012-04-05 6 views
9

Ich habe ein paar Anker, die zu bestimmten Abschnitten verlinken (mit Hashtags) innerhalb der Seite, und solche, die zum oberen oder unteren Rand des Dokumentfensters scrollen.Scrolling/Scrollbar sperrt nach Scrolltop Animation

$("html, body").animate({ scrollTop: $(document).height() }, 2000); 

jedoch, sobald die Animation und Scrollen erreicht haben, es ist Ziel und abgeschlossen, das Dokument blättern und Scrollbar scheint für einige Sekunden zu deaktivieren. Wenn Sie beispielsweise auf den Link "Zum Seitenende" klicken, scrollt das Dokumentfenster bis zum Ende der Seite. Sobald ich versuche zurückzuscrollen, wackelt es in einer zitternden Bewegung ein wenig auf und ab und erlaubt mir einige Versuche später zu scrollen.

Irgendwelche Tipps zu was könnte das verursachen?

Antwort

16

Dieser Thread ist alt, aber ich lief in diesem und es Arent Antworten überall, aber hier ist eine Lösung:

$(window).bind("mousewheel", function() { 
    $("html, body").stop(); 
}); 

, wenn der Benutzer die Bildlaufleiste verwendet, während die Animation ausgeführt wird, stoppt die Animation. tatsächlich fügen auch zwei Optionen zum .stop() -Methode

+0

Wow! Das hat das Problem auch für mich gelöst, vielen Dank fürs Teilen! :) –

+0

Danke, danke, danke! – TWright

7

Nur um Scotty Antwort beizutragen, können Sie: clearQueue & jumpToEnd.

Ich lief über ein Scroll-Problem, und verwendet Scotty's vorgeschlagen .stop() zu beginnen, aber bemerkte, dass die Animation noch "kämpfte", um zu beenden. Ich habe hier die Dokumentation aus: .stop() Method Documentation

Durch .stop(true, false); Zugabe konnte ich:

1.) die Warteschlange Animationen entfernen (nur für den Fall mehr wurden ausgelöst/Kaskadierung)

2.) verhindert, dass die Animation vom Versuch, zu seinem Endwert zu springen.

Hoffe, dass jemand anderen ihren Kopf gegen eine Tastatur schlägt;)