jQuery cross-browser "faire défiler vers le haut", avec animation
Actuellement, j'utilise ceci:
$('#go-to-top').each(function(){
$(this).click(function(){
$('html').animate({ scrollTop: 0 }, 'slow'); return true;
});
});
qui ne fonctionne pas dans Chrome, Opéra, je reçois un petit scintillement: le navigateur instantanément défile vers le haut, puis vers le bas et puis il commence à défiler lentement vers le haut, comme il se doit.
Est-il une meilleure façon de le faire?
source d'informationauteur Alex | 2011-04-07
Vous devez vous connecter pour publier un commentaire.
Vous êtes de retour
true
à partir de la fonction de clic, afin de ne pas empêcher le navigateur par défaut de comportement (c'est à dire la navigation à lago-to-top
d'ancrage. Comme Mark l'a dit, l'utilisation:$('html,body').animate({ scrollTop: 0 }, 'slow');
De sorte que votre code devrait ressembler à ça:
À le faire fonctionner dans l'opéra de ce réponse s'est avéré très utile.
De le mettre avec votre
click()
Exemple de Code sur jsfiddle.
Note de côté si tout ce que vous faites avec le
.each()
est l'affectation d'un gestionnaire de clic vous n'avez pas besoin de parcourir la collection, il peut être simplifié à ceci:Aussi si il n'y a plus d'un élément avec l'id
#go-to-top
votre balise sera pas valide, essayez de passer à une classe.go-to-top
peut-être quelque chose comme
ainsi que le html.
edit >
devrait couvrir tous les navigateurs!
Hm... étrange, avec jsFiddle je peux l'obtenir pour fonctionner correctement dans Opera (version 11.01), mais dans Chrome, il saute vers le haut et ne pas l'animer comme vous le souhaitez.
Vous pouvez voir le jsFiddle ici si vous voulez:
http://jsfiddle.net/H7RFU/
J'espère que ça aide un peu, si ce n'est pas vraiment une réponse.
Si ce que j'ai fait n'est pas ce que votre html etc ressemble, veuillez la mettre à jour et ajouter.
Cordialement,
Christian
Mise en garde: je n'ai pas utilisé la fonction de sauvegarde de jsFiddle avant, donc je ne sais pas pour combien de temps il a sauvé.
Il fonctionne de la croix-navigateur
Ce sera de travailler dans tous les navigateurs. Il évite le hash tag sur l'url, donc, le défilement fluide est fait!
Je suis avec cela, C'est aussi simple