160px 上にスクロールした後、画面の上部に固定されるナビゲーション バーがあります。また、アンカー リンクにはスムーズ スクロールを使用します。これは、ナビゲーション バーが既に画面の上部に固定されている場合にうまく機能しますが、160 ピクセル上にスクロールする前にナビゲーション バーが固定されていない状態にある場合、アンカー スクロールは取り込まれません。私が追加した40pxのバッファを考慮してください。
ナビゲーションバーが固定されているかどうかに関係なく、スムーズスクロールで正確に-40pxまでスクロールしたい。
私が使用している2つのコードは次のとおりです。
1) スムーズスクロール
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) 固定ナビゲーション バー
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
});
});
何か案は?
前もって感謝します。