Плавный скролл к якорю с другой страницы
Добрый день!
Помогите в решении задачи разметка: <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" и пытаюсь с нее вернуться на главную к какому то блоку, то переход осуществляется, а скролла нет. |
function handler(event) { var hash = typeof event === 'string' ? event : event.target.hash; var headerHeight = $('.top').height(); if (!hash) return var tag = $(hash); if (tag.length) { var offset = tag.offset().top - headerHeight; $('html, body').stop().animate({ scrollTop: offset }, 2000); } } $('.top-menu a').on("click", handler); $(function() { handler(location.hash); }); |
:-? в который раз поднимается эта тема, буду удивлён, если её наконец решат. :)
|
Спасибо все работает, но появилась еще одна проблема, надо было наверно сразу указывать.
Когда нахожусь на главной странице, в меню при клике на ссылки sub-menu скрываются и появляются блоки. это реализовано следующим образом: $(".menu .sub-menu li").click(function(){ $(".yslygi .yslygi-tabs .yslygi-tab").removeClass('active'); $(".yslygi-cont-tab").hide(); $(".yslygi-wrap").css({"position":"absolute", "opacity":"0"}).eq($(this).index()).css({"position":"relative", "opacity":"1"}).addClass("active"); $(".yslygi-cont-tab.active").show(); }); Когда нахожусь на внутренней странице и перехожу по ссылке sub-menu то попадаю всегда к открытой первой, даже если кликнул на вторую или третью. Как мне хешировать порядковый номер ссылки sub-menu и передать его потом на главную в форму выбора для показа блока |
Часовой пояс GMT +3, время: 22:15. |