У меня есть панель навигации, которая фиксируется в верхней части экрана после того, как она прокручивает 160 пикселей. Я также использую гладкую прокрутку для привязных ссылок, которая отлично работает, если панель навигации уже установлена в верхней части экрана, однако, если навигационная панель находится в незафиксированном состоянии до прокрутки до 160 пикселей, тогда прокрутка якоря не принимает учтите буфер 40px, который я добавил.Прокрутите до привязки с фиксированной навигационной панелью, навигационные исправления после прокрутки слишком
Я хочу, чтобы гладкая прокрутка прокручивалась до якоря точно -40px, зафиксирована ли панель навигации или нет.
Два много кода я использую следующие:
1) Smooth Scroll
jQuery(document).ready(function($) {
$('a[href*="#"]:not([href="#"])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html, body').animate({
scrollTop: target.offset().top - 40
}, 750);
return false;
}
}
});
});
2) Fixed Nav Bar
jQuery(document).ready(function($){
$(function() {
$(window).resize(function() {
// responsive nav primary fixed
if (window.innerWidth > 960) {
$(window).bind('scroll', function(){ if ($(window).scrollTop() > 160) {$('.nav-primary').addClass('nav-primary-fixed');} else {$('.nav-primary').removeClass('nav-primary-fixed');}});
} else {}
// end responsive nav primary fixed
}) .resize(); // trigger resize event
});
});
Любые идеи?
Заранее благодарен.
Проверьте, соответствует ли navbar классом «nav-primary-fixed», а затем измените значение 40 ...? – CBroe
Я не уверен, что вы неправильно поняли вопрос. Якорная прокрутка отлично работает, если сайт уже прокручивается более чем на 160 пикселей, а navbar имеет «nav-primary-fixed». Он не выравнивает якоря должным образом, если сайт не был прокручен сверху, а навигационная панель еще не исправлена. Так, например, на странице загрузки, если я нажимаю и якорь ссылку он будет прокручиваться до точки привязки, но в верхней части узловой точки будут скрыты 40px за навигационной панели. Если ваше решение - правильный путь для продвижения вперед, я не знаю, как это сделать в моем текущем коде. – SharpenedPixels
Для этого требуется 40px смещение, только если navbar установлен. Поэтому проверьте, является ли это (.hasClass), и в зависимости от этого вычтите эти 40px, или нет. – CBroe