@krysestark

Плавный скролл к нужному блоку на другой странице?

Приветствую!

В общем беда следующего характера:
1. Есть ссылка в меню, которая ведет к определенному блоку на главной странице
2. Есть собственно сам блок, который состоит из двух вкладок

Сейчас получается, если человек находится на главной странице и нажимает кнопку "Ремонт", то он скролится к блоку "две вкладки", одна из которых является "Ремонт", собственно так же включается и эта вкладка.

т.е. скрипт выглядит вот так:
$(".menu__link-repair").click(function(){ // кликаем на кнопку в меню
    $(".activities__tab-repair").click(); // при клике на ту кнопку, нажимает вот эту и открываем вкладку Ремонт в этом блоке
    scrollTo(".activities__parts"); // Скролимся к этому самому блоку
});


так вот, на главной есесна все работает круто, но с другой страницы есесна ничего не работает!
Вот теперь собственно вопрос, как сделать, что отрабатывался этот функционал при переходе с другой страницы?
  • Вопрос задан
  • 452 просмотра
Решения вопроса 1
rockfeeler
@rockfeeler
Фронтендер, дизайнер, верстальщик-перфекционист
Я делал так.
Создавал ссылку с нужным параметром. Например <a href="index.php?page=approach&anc=1">Ссылка</a>, тут сделал &.
Когда целевая страница загружается, парсим адрес window.location.href.split('&')[1] и анимируем страницу до блока, соответствующего якорю anc=1, на этот же триггер можно повесить то, какая вкладка будет открыта.
Ссылки без php можно обработать схожим образом.

Дополню:

<a href="моя_другая_страница.html#якорь">Link</a>
		
<!-- на другой странице -->
		
<div id="якорь"></div>


var hash = window.location.hash;
if (hash == '' || $(hash).length == 0) return true;

setTimeout(function() {
	$('html, body').animate({
		scrollTop: $(hash).offset().top
	}, 900, function () {
		window.location.hash = hash;
	});		
}, 100);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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