Как при переходе на страницу "подскроллить сайт" к блоку с определённым id
есть ссылка вида /cabinet/tasks/set-school-classes?role=research_coordinator_oo#12146
где 12146 это <div id="12146">
нужно при переходе по этой ссылке скролить страницу к этому <div> , беря id именно из url
как написать это на jquery? точнее как его получить в jquery? в общем вот такой есть набросок (нерабочий естественно)
$('html, body').animate({
scrollTop: $("здесь ид блока").offset().top // класс объекта к которому приезжаем
}, 1200); // Скорость прокрутки
как его дописать?
Ответы (1 шт):
Автор решения: ryzen
→ Ссылка
Здесь еще нужно прикрутить проверку, есть ли хэш при загрузке url. Но в целом это выглядит вот так.
const hash = window.location.hash // получаем хэш
const target = hash.substring(1); // удаляем знак #
$('html, body').animate({
scrollTop: $(target).offset().top
}, 1200);
Пример для продакшн с проверкой на хэш:
$(function() {
const hash = window.location.hash
if (hash) {
const target = hash.substring(1);
$('html, body').animate({
scrollTop: $(target).offset().top
}, 1200);
}
});