Сброс позиции прокрутки при обновлении страницы, не работает в современных браузерах

Я пытаюсь сбросить позицию прокрутки браузера при обновлении, и, видимо, это не работает или не возможно в современных браузерах, я не прав?

Код:

$(window).on('beforeunload', function() {
$('html, body').scrollTop($('#scroll-to-div-id-anchor').offset().top); });

Может быть, я неправильно с этим справляюсь и есть другой способ добиться этого?

Я перепробовал все варианты и возможные варианты этого кода, но он не работал в Safari и Chrome (как на настольном компьютере, так и, особенно, на мобильном).

1 ответ

Если вы хотите, чтобы страница переместилась на определенный элемент при перезагрузке, ожидаемое поведение - переместить страницу к этой точке после ее загрузки. Если вы попытались переместить страницу до того, как она была загружена, вы не будете знать, куда вам нужно перейти, и если вы попытались переместить ее при выгрузке, это не гарантирует, что эта точка будет сохранена после ее перезагрузки.

Вы, вероятно, можете сохранить местоположение прокрутки в localStorage при выгрузке и попытаться загрузить это место, но в этом случае я бы порекомендовал просто переместить страницу при загрузке.

$(document).ready(function() {
  $('html, body').scrollTop($('#scroll-to-div-id-anchor').offset().top);
});

Другие вопросы по тегам