Задать вопрос

Как отследить величину скрола и передать на другую страницу?

1. Допустим, я нахожусь на странице, проскроленной на N пикселей.
2. Нажимаю ссылку и попадаю на новую страницу.

Возможно ли сделать, чтобы новая страница открылась сразу проскроленной на те самые N пикселей?
  • Вопрос задан
  • 216 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
Stalker_RED
@Stalker_RED
$('a').on('click', function(){ // на всех ссылках при клике
  let scroll = $(window).scrollTop() // получаем величину скролла
  // дописываем ее в конец ссылки
  let newHref  = $(this).attr('href') + '#' + scroll 
  $(this).attr('href', newHref)
})
а на новой странице при загрузке проверяем location.hash и прокручиваем страницу на сколько нужно.

Это только набросок, до рабочего примера нужно будет допиливать.
Ответ написан
Комментировать
@olezhenka
Если будет полная перезагрузка страниц, используйте что-то из этого:
При переходе на другую страницу передавать данные в адресной строке.
Сохранять в куки или локальное хранилище.
Ответ написан
kleinmaximus
@kleinmaximus
Senior Full-stack Javascript Developer
Как вариант, во время скролла у всех ссылок на странице добавлять хэш со значением прокрутки, а при открытии другой страницы скроллить вниз. Другой вариант, слушать собитие click на ссылке, перехватывать его, "превентить", а отправлять кастомно на адрес с хешем, как в предыдущем варианте. Соответственно, новая страница должна уметь делать скролл к указанному значению.
Это если серверный рендеринг. Если SPA, то сильно зависит от архитектуры.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
OfferCase Москва
от 400 000 ₽
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
Future Москва
от 50 000 до 70 000 ₽