2012-04-05 6 views
9

Ho un paio di tasselli che puntano a sezioni specifiche (tramite hashtag) all'interno della pagina, e quelle che scorrono nella parte superiore o inferiore della finestra del documento.Serrature Scorrimento/Scrollbar Dopo scrollTop Animazione

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

Tuttavia, non appena l'animazione e lo scorrimento ha raggiunto la sua destinazione e completato, il documento e lo scorrimento della barra di scorrimento sembrano disabilitare per alcuni secondi. Ad esempio, se fai clic sul link "Vai alla fine della pagina", la finestra del mio documento scorrerà correttamente fino alla fine della pagina. Appena provo a scorrere indietro su, jiggles un po 'su e giù in un movimento nervoso e mi permette di scorrere alcuni tentativi più tardi.

Eventuali suggerimenti su quello che potrebbe essere la causa?

risposta

16

Questo thread è vecchio, ma mi sono imbattuto in questo e ci arent risposte da nessuna parte, ma qui è una soluzione:

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

se l'utente utilizza la barra di scorrimento, mentre l'animazione è in esecuzione, si ferma l'animazione.

+0

Wow! Questo ha risolto il problema anche per me, grazie mille per la condivisione! :) –

+0

Grazie, grazie, grazie! – TWright

7

Giusto per contribuire alla risposta di Scotty, si può effettivamente anche aggiungere due opzioni per il metodo .Stop(): clearQueue & jumpToEnd.

Mi sono imbattuto in un problema di scroll e ho usato Scotty's suggerito .stop() per cominciare, ma ho notato che l'animazione stava ancora "lottando" per finire. Ho controllato la documentazione qui: .stop() Method Documentation

Aggiungendo .stop(true, false); ero in grado di:

1.) rimuovere le animazioni in coda (solo nel caso in cui diversi sono stati attivati ​​/ cascata)

2.) evitare che l'animazione dal tentativo di saltare al suo valore finale.

Speranza che aiuta chiunque altro sbattere la testa contro una tastiera;)