Эх, я снова к вам за советом.
Вообщем есть страница. На ней есть якоря. Сверстана она криво ... (а может и не криво, во всяком случае мозгов сверстать у меня хватило только так.) В итоге мне пришлось задавать отступ якорю на 170px ниже
В итоге получился у меня такой код. Смотрите ниже.
Внимание вопрос: Как сделать так, чтобы при переходе на другую страницу якорь становился на тоже место?
Попробовала так:
Пример:
test.ru/index.php#home
Оно переходит но встаёт ровно на метке, а мне нужно на 170px ниже
Понимаю, что нужно добывить в js переход на index.php но чёрт, у меня трабблы с синтаксисом. Помогите, плиииз
<ul class="nav navbar-nav main-nav">
<li><a href="#home" class="active">home</a></li>
<li><a href="#product">product</a> </li>
<li><a href="#partner">partner</a> </li>
</ul>
$(document).ready(function () {
var menu_selector = ".main-nav";
function onScroll(){
var scroll_top = $(document).scrollTop();
$(menu_selector + " a").removeClass("active").each(function(){
var hash = $(this).attr("href");
var target = $(hash);
var height = target.outerHeight();
if (target.position().top - 170 <= scroll_top && target.position().top - 170 + height > scroll_top) {
$(this).addClass("active");
}
});
}
$(document).on("scroll", onScroll);
$(menu_selector + " a").click(function(e){
e.preventDefault();
$(document).off("scroll");
$(menu_selector + " a.active").removeClass("active");
$(this).addClass("active");
var hash = $(this).attr("href");
var target = $(hash);
$("html, body").animate({
scrollTop: target.offset().top-170
}, 500, function(){
history.replaceState(history.state, document.title, location.href.replace(/#.*$/g, '') + hash);
$(document).on("scroll", onScroll);
});
});
});