Как сохранить место прокрутки страницы после перезагрузки?

78
12 июня 2021, 14:20

Я пользуюсь VS Code и там же запускаю localhost для авто перезагрузки страницы (после сохранения файла). Но проблема в том, что после этой перезагрузки прокрутка страницы возвращается наверх. Происходит это только при сохранении файла стилей (scss и css).
Пробовал делать с localStorage, но все равно не хочет работать. Подскажите как сохранить прокрутку, ибо скролить каждый раз до нужного места, не самый лучший вариант. Вот код для localStarage:

window.onload = function () {
   window.scrollTo(0, +localStorage.getItem('page_scroll'));
   document.addEventListener('scroll', function () {
      localStorage.setItem('page_scroll', window.pageYOffset);
   });
}
Answer 1

Вообще, браузер сам сохраняет прокрутку в нужном месте.

Если она слетает, значит в какой-то момент контента на странице становится меньше, чем положение прокрутки. Если проблема возникает только в dev-режиме, то не стоит забивать код костылями, которые там не нужны. Можно попробовать расширение, позволяющее добавлять скрипты к страницам и в нём сохранять в sessionStorage положение проктуртrи из unload, а в по таймауту после загрузки восстанавливать его.

READ ALSO
Как вызвать методы компонента VueJs

Как вызвать методы компонента VueJs

Создаю компонент диалога

102
Алгоритм поиска подстроки в массиве строк (Javascript)

Алгоритм поиска подстроки в массиве строк (Javascript)

Необходимо реализовать алгоритм проверяющий наличие подстроки в массиве строк и возвращающая номера элементов массива, в которых встретилась...

82
Почему не работает вызов функции переданной через props?

Почему не работает вызов функции переданной через props?

В родительском компоненте есть такая функция

98