2010-01-23 7 views

Répondre

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

Peut-être?

+1

Une idée de pourquoi '$ ('html, body')' est-il nécessaire? Je l'ai essayé avec '$ (window)', mais cela ne semblait pas avoir d'effet, ce que je m'attendais à voir (si je me souviens bien) c'est l'objet fenêtre qui garde la position de défilement? –

+6

fenêtre est veiwport mais vous devez animer le document html, vous n'avez pas besoin de corps $ ("html"). Animate ({scrollTop: $ ("# whatever_id_you_want_to_go_to"). Offset(). Top}, 1200) – fullstacklife

+2

Je pense que vous avez besoin de 'body' car' html' ne fonctionnera pas dans tous les navigateurs. –

10

Lorsque vous transmettez 50 comme deuxième paramètre à animer, cela signifie 50 millisecondes. Voir la documentation animate. Soit en passant un plus grand nombre, soit, comme le suggère c0mrade, simplement passer 'lent'.

0

vous pouvez régler le temps de défiler vers le haut

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

Le # doit être échappé \\ #.

Questions connexes