201 votes

Comment sauter en haut de la page du navigateur

J'écris une popup modale et j'ai besoin que le navigateur saute en haut de l'écran lorsque le bouton d'ouverture de la modale est pressé. Existe-t-il un moyen de faire défiler le navigateur vers le haut en utilisant jQuery ?

428voto

Nick Craver Points 313913

Vous pouvez définir le scrollTop comme ceci :

$('html,body').scrollTop(0);

Ou si vous voulez une petite animation au lieu d'un coup d'éclat au sommet :

$('html, body').animate({ scrollTop: 0 }, 'fast');

1 votes

Bien vu... J'ai déjà utilisé le plugin scrollTo pour jQuery pour réaliser ceci - j'aurais pu économiser un peu de code avec votre code... merci pour la leçon ;-)

0 votes

@MikhailBatcer - désactivez votre CSS et voyez ensuite si cela fonctionne. Il se peut que vous ayez un problème avec la façon dont vous avez stylé votre html y body sinon, utilisez $(window) à la place.

0 votes

Comment ajouter une durée pour l'animation-skrolling ?

148voto

Ionut Staicu Points 6523

Sans animation, vous pouvez utiliser du simple JS :

scroll(0,0)

Avec l'animation, vérifiez La réponse de Nick .

4 votes

Cette fonction est-elle prise en charge par tous les navigateurs ?

1 votes

scroll est dans la norme CSSOM alors que scrollTo a été défini à l'origine dans DOM Level 0 et ne fait partie d'aucune norme. Cependant, le CSSOM comprend scrollTo pour la rétrocompatibilité.

3 votes

Je pense scroll est largement soutenu. Voir stackoverflow.com/q/1925671/41906

39voto

Silkster Points 1096

Si vous utilisez la boîte de dialogue jQuery UI, vous pouvez simplement faire en sorte que la modale apparaisse avec une position fixe dans la fenêtre afin qu'elle ne disparaisse pas, ce qui évite de devoir la faire défiler. Autrement,

var scrollTop = function() {
    window.scrollTo(0, 0);
};

devrait faire l'affaire.

13voto

S.Kiers Points 615

Vous pourriez le faire sans javascript et utiliser simplement des balises d'ancrage ? Ce serait alors accessible à ceux qui n'ont pas de javascript.

mais comme vous utilisez des modales, je suppose que vous ne vous souciez pas d'être libre de js ;)

3 votes

L'utilisation de balises d'ancrage interromprait la navigation basée sur le hachage.

4voto

Ahmad Moghazi Points 301

Vanille Javascript solution

theId.onclick = () => window.scrollTo({top: 0})

Si vous souhaitez un défilement fluide

theId.onclick = () => window.scrollTo({ top: 0, behavior: 'smooth' })

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X