この質問がすでに回答されている場合は、お詫び申し上げます。解決策を探してみましたが、自分のコードに適したものは見つかりませんでした。私はまだjQueryを初めて使用します。
2つの異なるページに2種類のスティッキーメニューがあります。これが両方のコードです。
$(document).ready(function () {
var contentNav = $('.content-nav').offset().top;
var stickyNav = function () {
var scrollTop = $(window).scrollTop();
if (scrollTop > contentNav) {
$('.content-nav').addClass('content-nav-sticky');
} else {;
$('.content-nav').removeClass('content-nav-sticky')
}
};
stickyNav();
$(window).scroll(function () {
stickyNav();
});
});
$(document).ready(function () {
var stickyNavTop = $('.nav-map').offset().top;
// var contentNav = $('.content-nav').offset().top;
var stickyNav = function () {
var scrollTop = $(window).scrollTop();
if (scrollTop > stickyNavTop) {
$('.nav-map').addClass('sticky');
// $('.content-nav').addClass('sticky');
} else {
$('.nav-map').removeClass('sticky');
// $('.content-nav').removeClass('sticky')
}
};
stickyNav();
$(window).scroll(function () {
stickyNav();
});
});
私の問題は、コードの2行目がvar contentNav = $('.content-nav').offset().top;
「Uncaught TypeError:Undefined of property 'top' of undefined」というエラーを発生させるため、下部のスティッキーサイドメニューのコードが機能しないことです。実際、その2行目より下にある他のjQueryコードは、その上に配置されない限り、まったく機能しません。
$('.content-nav').offset().top
調べた結果、指定されたセレクターが別のページにあるために見つからないことが問題だと思います。もしそうなら、私は解決策を見つけることができません。