Forcer la position de défilement de la page vers le haut lors de l'actualisation de la page en HTML

Je construis un site Web que je publie avec div s. Lorsque j'actualise la page après qu'elle a été défilée à la position X, la page est chargée avec la position de défilement X.

Comment puis-je forcer la page à défiler vers le haut lors de l'actualisation de la page?

  • Ce que je peux penser est de certains js ou jQuery exécutés en tant que onLoad() fonction de la page à SET les pages défilent vers le haut. Mais je ne sais pas comment j'ai pu faire ça.

  • Une meilleure option serait si il y est-ce qu'une propriété ou quelque chose d'avoir la page chargée avec sa position de défilement par défaut (c'est-à-dire en haut) qui sera un peu comme page load, au lieu de page refresh.

91
demandé sur MC Emperor 2010-09-08 07:07:24

10 réponses

, Vous pouvez le faire en utilisant le scrollTop méthode sur DOM prêt:

$(document).ready(function(){
    $(this).scrollTop(0);
});
130
répondu Pat 2010-09-08 03:15:41

Pour une implémentation JavaScript simple plain:

window.onbeforeunload = function () {
  window.scrollTo(0, 0);
}
103
répondu ProfNandaa 2016-10-09 13:07:45

La réponse ici ne fonctionne pas pour safari, document.prêt est souvent tiré trop tôt.

Devrait utiliser l'événement beforeunload qui vous empêche de faire des setTimeout

$(window).on('beforeunload', function(){
  $(window).scrollTop(0);
});
30
répondu Ben 2014-04-29 06:22:36

Vous pouvez également essayer

$(document).ready(function(){
    $(window).scrollTop(0);
});

Si vous voulez faire défiler à la position x que vous pouvez changer la valeur de 0 à X.

9
répondu Ankitkumar Bhatt 2013-05-29 04:53:00

Vérifiez la fonction jQuery .scrollTop() ici

Cela ressemblerait à quelque chose comme

$(document).load().scrollTop(0);
8
répondu jon3laze 2010-09-08 03:15:16

Encore une fois, la meilleure réponse est:

window.onbeforeunload = function () { window.scrollTo(0,0);

(c'est pour non-jQuery, recherchez si vous recherchez la méthode JQ)

EDIT: une petite erreur c'est " onbeforunload" :) Les navigateurs Chrome et autres "se souviennent" de la dernière position de défilement avant le déchargement, donc si vous définissez la valeur à 0,0 juste avant le déchargement de votre page, ils se souviendront de 0,0 et ne reviendront pas à l'endroit où la barre de défilement était :)

5
répondu xoxel 2018-04-18 07:50:15

La réponse ici (défilement dans $(document).ready) ne fonctionne pas s'il y a une vidéo dans la page. Dans ce cas, la page défile après le déclenchement de cet événement, remplaçant notre travail.

La meilleure réponse devrait être:

$(window).on('beforeunload', function(){
    $(window).scrollTop(0);
});
4
répondu DrPollit0 2017-01-12 12:12:19

Au lieu de location.reload(), utilisez simplement location.href = location.href. Il ne défilera pas à la position précédente comme le fait location.reload().

Remarque: cela ne se rechargera pas s'il y a un # dans L'URL

4
répondu Nauphal 2017-01-12 16:17:00
<script> location.hash = (location.hash) ? location.hash : " "; </script>

Mettez le script ci - dessus dans la balise <head> de votre code html. Je ne sais pas comment les applications d'une seule page se comportent! Mais sûr fonctionne comme charme dans les pages régulières.

3
répondu harshes53 2016-01-26 22:47:30
$(document).ready(function(){
    $(window).scrollTop(0);
});

N'a pas fonctionné pour moi car google chrome ferait simplement défiler vers le bas après le chargement de la page. Ce que j'ai utilisé était

$(document).ready(function() {
    var url = window.location.href;
    console.log(url);
    if( url.indexOf('#') < 0 ) {
        window.location.replace(url + "#");
    } else {
        window.location.replace(url);
    }
});

// cela charge la page avec un # à la fin. Donc, il sera toujours charger en haut.

2
répondu Daut 2016-08-18 09:54:45