Нашла в интернете скрипт фиксированной навигации. Мне нужно, чтобы он не просто слайдился до якоря, а отбивал сверху 200px, то есть становился на позицию на 200px ниже. Я пока новичок в jquery, помогите подправить =)
Вот демка этого скрипта demo.webcareer.ru/2016/01/change_active_nav/
<header class="sticky-header">
<div class="top-menu">
<ul>
<li><a class="" href="#home">Главная</a></li>
<li><a href="#about" class="active">О нас</a></li>
<li><a href="#service" class="">Услуги</a></li>
<li><a href="#contact" class="">Контакты</a></li>
</ul>
</div>
</header>
var menu_selector = ".nav"; // Переменная должна содержать название класса или идентификатора, обертки нашего меню.
function onScroll(){
var scroll_top = $(document).scrollTop();
$(menu_selector + " a").each(function(){
var hash = $(this).attr("href");
var target = $(hash);
if (target.position().top-250 <= scroll_top && target.position().top + target.outerHeight() > scroll_top) {
$(menu_selector + " a.active").removeClass("active");
$(this).addClass("active");
} else {
$(this).removeClass("active");
}
});
}
$(document).ready(function () {
$(document).on("scroll", onScroll);
$("a[href^=#]").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-250
}, 500, function(){
window.location.hash = hash;
$(document).on("scroll", onScroll);
});
});
});