Ich entschuldige mich, wenn diese Frage bereits beantwortet wurde. Ich habe versucht, nach Lösungen zu suchen, konnte jedoch keine finden, die zu meinem Code passt. Ich bin noch neu bei jQuery.
Ich habe zwei verschiedene Arten von Sticky-Menüs für zwei verschiedene Seiten. Hier ist der Code für beide.
$(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();
});
});
Mein Problem ist, dass der Code für das Sticky-Side-Menü unten nicht funktioniert, da in der zweiten Codezeile var contentNav = $('.content-nav').offset().top;ein Fehler mit der Aufschrift "Uncaught TypeError: Eigenschaft 'top' von undefined kann nicht gelesen werden" ausgelöst wird. Tatsächlich funktioniert kein anderer jQuery-Code unterhalb dieser zweiten Zeile, es sei denn, sie werden darüber platziert.
Nach einigen Recherchen besteht das Problem darin, dass $('.content-nav').offset().topder angegebene Selektor nicht gefunden werden kann, da er sich auf einer anderen Seite befindet. Wenn ja, kann ich keine Lösung finden.