2010-01-23 15 views

risposta

90
$('a[href=#top]').click(function(){ 
    $('html, body').animate({scrollTop:0}, 'slow'); 
}); 

Forse?

+1

Qualche idea sul perché '$ ('html, body')' è richiesto? L'ho provato con '$ (window)', ma non sembrava avere alcun effetto, il che mi aspettavo che vedesse come (se ricordo male) è l'oggetto finestra che tiene traccia della posizione di scorrimento? La finestra –

+6

è veiwport ma è necessario animare il documento html, inoltre non è necessario il corpo $ ("html"). Animate ({scrollTop: $ ("# whatever_id_you_want_to_go_to"). Offset(). Top}, 1200); – fullstacklife

+2

Penso che tu abbia bisogno di 'body' dato che' html' non funzionerà con tutti i browser. –

10

Quando si passa 50 come secondo parametro da animare, vale 50 millisecondi. Vedere la documentazione animate. Passa un numero più grande o, come suggerito da DM, passa semplicemente "lento".

0

è possibile impostare il tempo per il top di scorrimento

$('a[href=#top]').click(function(){ 
$('body').animate({ 
    scrollTop: 0},4000);}); 
0
$('a[href=\\#top]').click(function(){ 
    $('body').animate(
    { 
     scrollTop: 0 
    }, 
    2000 
); 
}); 

Il # deve essere sfuggito \\ #.

Problemi correlati