Je suis en train de créer un site Web que je publie avec div
s. Lorsque j'actualise la page après son défilement jusqu'à la position X, la page est chargée avec la position de défilement X.
Comment puis-je forcer la page à faire défiler vers le haut lors de l'actualisation de la page?
Ce que je peux penser, c'est de l'exécution de JS ou jQuery en
onLoad()
fonction de la page pour définir les pages défiler vers le haut. Mais je ne sais pas comment je pourrais faire ça.Une meilleure option serait s'il y a une propriété ou quelque chose pour que la page soit chargée avec sa position de défilement par défaut (c'est-à-dire en haut) qui sera un peu comme le chargement de la page , au lieu de l' actualisation de la page .
Réponses:
Vous pouvez le faire en utilisant la méthode scrollTop sur DOM ready :
la source
Pour un simple simple mise en œuvre JavaScript:
la source
Safari 11.0.3
et fonctionne bien pour moi, lequel utilisez-vous?return
?document.querySelector('html').style.scrollBehavior = '';
peut également être nécessaire. S'il est défini sursmooth
, il se peut qu'il ne parvienne pas en haut avant le rechargement de la page.La réponse ici ne fonctionne pas pour les safaris, document.ready est souvent renvoyé trop tôt.
Devrait utiliser l'
beforeunload
événement qui vous empêcherait de fairesetTimeout
la source
Encore une fois, la meilleure réponse est:
(c'est pour non-jQuery, recherchez si vous recherchez la méthode JQ)
EDIT: une petite erreur son "onbeforunload" :) Chrome et autres navigateurs "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 ont gagné ne revient pas à l'endroit où se trouvait la barre de défilement :)
la source
document.documentElement.scrollTop
de fonctionner. Cependant, j'utilise généralement les deux.Vérifiez la
.scrollTop()
fonction jQuery iciCela ressemblerait à quelque chose comme
la source
Vous pouvez également essayer
Si vous souhaitez faire défiler à la position x, vous pouvez changer la valeur de 0 à x.
la source
Au lieu de
location.reload()
, utilisez simplementlocation.href = location.href
. Il ne défilera pas jusqu'à la position précédente comme lelocation.reload()
fait.Remarque: cela ne se rechargera pas s'il y a un # dans l'URL
la source
Mettez le script ci-dessus dans la
<head>
balise de votre html. Je ne sais pas comment les applications à page unique se comportent! Mais fonctionne comme du charme dans les pages régulières.la source
La réponse ici (défilement
$(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, écrasant notre travail.La meilleure réponse devrait être:
la source
ne fonctionnait pas pour moi car Google Chrome ferait simplement défiler vers le bas une fois le chargement de la page terminé. Ce que j'ai utilisé était
// Ceci charge la page avec un # à la fin. Donc, il se chargera toujours en haut.
la source
Pour réinitialiser la fenêtre, faites défiler vers le haut,
$(window).scrollTop(0)
dans l'événement beforeunload fait les astuces, cependant, j'ai testé dans Chrome 80, il reviendra à l'ancien emplacement après le rechargement.Pour éviter cela, définissez le
history.scrollRestoration
sur"manual"
.la source
La réponse supercalifragilisticexpialidocious est:
ajoutez ceci en haut de votre fichier js ou de votre balise de script
la source