Показать сообщение отдельно
  #1 (permalink)  
Старый 06.08.2018, 16:34
Интересующийся
Отправить личное сообщение для komned37 Посмотреть профиль Найти все сообщения от komned37
 
Регистрация: 23.07.2018
Сообщений: 18

Плавный скролл к якорю с другой страницы
Добрый день!
Помогите в решении задачи

разметка:
<div class="top">
	<ul class="menu">
		<li><a href="/link1"></a></li>
		<li><a href="/link2"></a>
			<ul class="sub-menu">
				<li><a href="#blok1"></a></li>
				<li><a href="#blok2"></a></li>
				<li><a href="#blok3"></a></li>
			</ul>
		</li>
		<li><a href="/link3"></a></li>	
	</ul>
</div>

	<div id="blok1"></div>
	<div id="blok2"></div>
	<div id="blok3"></div>


код js:
function handler(event) {
    var hash = event.target.hash;
    var headerHeight = $('.top').height();

    if (hash) {
     

      var tag = $(hash);

      if ($(hash).length) {
        var offset = tag.offset().top - headerHeight;
        $('html, body').stop().animate({scrollTop: offset}, 2000);
      }
    }
  }

  $('.top-menu a').on( "click", handler );


Когда нахожусь на главной странице, навигация работает хорошо, но как только перехожу на какую то внутреннюю, к примеру "/link3" и пытаюсь с нее вернуться на главную к какому то блоку, то переход осуществляется, а скролла нет.
Ответить с цитированием