Я создаю веб-сайт, который публикую с помощью div
s. Когда я обновляю страницу после ее прокрутки до положения X, страница загружается с положением прокрутки как X.
Как заставить страницу прокручиваться вверх при обновлении страницы?
Я могу думать о каком-то JS или jQuery, запущенном как
onLoad()
функция страницы, чтобы УСТАНОВИТЬ прокрутку страниц вверх. Но я не знаю, как я мог это сделать.Лучшим вариантом было бы, если есть какое-то свойство или что-то, чтобы страница загружалась с положением прокрутки по умолчанию (т.е. вверху), что будет похоже на загрузку страницы , а не на обновление страницы .
Ответы:
Вы можете сделать это с помощью метода scrollTop в готовой модели DOM :
источник
Для простой простой реализации JavaScript:
источник
Safari 11.0.3
и у меня он работает нормально, какой из них вы используете?return
?document.querySelector('html').style.scrollBehavior = '';
может потребоваться добавление . Если он был установленsmooth
, он может не попасть в начало до перезагрузки страницы.Ответ здесь не работает для сафари, document.ready часто запускается слишком рано.
Следует использовать
beforeunload
событие, которое мешает вам выполнять некоторыеsetTimeout
источник
Опять же, лучший ответ:
(это для не-jQuery, посмотрите, ищете ли вы метод JQ)
РЕДАКТИРОВАТЬ: небольшая ошибка его "onbeforunload" :) Chrome и другие браузеры "запоминают" последнюю позицию прокрутки перед выгрузкой, поэтому, если вы установите значение 0,0 непосредственно перед выгрузкой вашей страницы, они запомнят 0,0 и выиграют не прокручиваем назад туда, где была полоса прокрутки :)
источник
document.documentElement.scrollTop
для работы. Я обычно использую оба.Проверьте
.scrollTop()
функцию jQuery здесьЭто будет выглядеть примерно так
источник
Вы также можете попробовать
Если вы хотите прокрутить в позиции x, вы можете изменить значение с 0 на x.
источник
Вместо этого
location.reload()
просто используйтеlocation.href = location.href
. Он не будет прокручиваться к предыдущей позиции, как этоlocation.reload()
происходит.Примечание: это не будет перезагружено, если в URL-адресе есть #
источник
Поместите приведенный выше скрипт в
<head>
тег вашего html. Не уверен, как ведут себя одностраничные приложения! Но на обычных страницах работает как шарм.источник
Ответ здесь (прокрутка
$(document).ready
) не работает, если на странице есть видео. В этом случае страница прокручивается после запуска этого события, отменяя нашу работу.Лучшим ответом должно быть:
источник
у меня не сработало, так как Google Chrome просто прокручивал вниз после завершения загрузки страницы. Я использовал
// Это загружает страницу с # в конце. Так что он всегда будет загружаться вверху.
источник
Чтобы сбросить окно, прокрутите его вверх,
$(window).scrollTop(0)
в событии beforeunload есть трюки, однако, как я тестировал в Chrome 80, он вернется в старое место после перезагрузки.Чтобы этого не произошло, установите
history.scrollRestoration
для"manual"
.источник
Суперкалифрагилистический экспериментальный ответ:
добавьте это вверху вашего js файла или тега скрипта
источник