@AleDv

Как восстановить позицию скролла после обновления компонента Vue?

Всем привет, есть Vue компонент-контейнер, в котором меняются панели с контентом. Контент Может быть разной длинны, поэтому сохраняю позицию скролла для каждой панели, при переходе на другую.

При возвращении на посещённую панель пытаюсь вернуть позицию скрола в хуке updated, однако позиция скролла не восстанавливается. Если же, добавить таймаут перед вызовом функции установки скролла, то скролл устаналивается, но происходит моргание экрана, т.к. сначала отображается верх панели, а потом скроллится до нужного места.

updated() {
            setTimeout(() => {
                this.manageScroll();
            }, 1);
        },


Если я правильно понял хук updated, то когда он срабатывает, у нас уже есть полностью построенный DOM, но тогда почему скролл не устаналивается? Подскажите, пожалуйста, где я ошибся?

P.S. скролл ставлю так:

window.scrollTo(0, sessionStorage[key]);
  • Вопрос задан
  • 360 просмотров
Пригласить эксперта
Ответы на вопрос 1
tomgif
@tomgif
Веб-разработчик
Если вы используете VueRouter, то можно сохранять позицию скролла в истории
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы