@eugene159

Как имитировать событие ссылки-якоря?

При переходе по ссылке-якорю на другой сайт якорь срабатывает. Пример:
https://ru.wikipedia.org/wiki/HTML5#%D0%A0%D0%B0%D...

Однако если перейти, немного поскроллить страницу, а потом перезагрузить ее (нажать F5 или в адресной строке выделить ссылку и нажать Enter), то якорь уже не будет срабатывать. Но если открыть эту ссылку в новой вкладке, то якорь сработает.

Как реализовать такой механизм средствами JS? Что это за событие(я)? Что это за проверка?
  • Вопрос задан
  • 177 просмотров
Пригласить эксперта
Ответы на вопрос 1
Avilona
@Avilona
Вы можете смотреть на url при загрузке страницы, и если там есть нужный вам якорь, то смещать к нему, как-то так:
var urlHash = document.querySelector(window.location.hash);
var top = window.scrollY + urlHash.getBoundingClientRect().top;
window.scrollTo({ top: top });
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы