Задать вопрос
motto13
@motto13
Вечно молодой

Как перейти на другую страницу по якорной ссылке?

$('.scroll_link').on('click', function(e){
                e.preventDefault();
                let f = window.location.hash;
                $('html,body').stop().animate({ scrollTop: $(f).offset().top-180 }, 1000);
            });


Якорные ссылки имеют вид:
<a class="scroll_link" href="/ru/article/post/50?page=3#post_170">#170</a>


?page=3 ссылка по пагинации на страницу с постом к которому размещена цитата

Если нахожусь на этой самой странице (/ru/article/post/50?page=3) то по клику на якорную ссылку идет скролл к нужному id (post_170).

Как в случае если я нахожусь на странице например ?page=4 а в одном из постов цитата ведет на страницу например ?page=2 (
<a class="scroll_link" h ref="/ru/article/post/30?page=2#post_100">#100</a>
), заставить перейти по якорной ссылке в цитате на указанную страницу.
  • Вопрос задан
  • 244 просмотра
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
@StepsOnes
Для этого нужно получить текущий номер страницы из URL, затем заменить его на нужный и обновить страницу с новым URL. Можно сделать так:
$('.scroll_link').on('click', function(e){
    e.preventDefault();
    let href = $(this).attr('href');
    let page = window.location.search.replace('?page=', '') || '1'; // получаем текущий номер страницы из URL
    let newHref = href.replace('?page=', `?page=${page}&`); // заменяем номер страницы на текущий
    window.location.href = newHref; // переходим на новую страницу
});

Затем, на новой странице скроллим к нужному элементу так, как было в первом примере.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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