Прошу прощения, если этот вопрос уже был дан. Я попытался найти решения, но не смог найти подходящий код. Я все еще новичок в jQuery.
У меня есть два разных типа липких меню для двух разных страниц. Вот код для обоих.
$(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();
});
});
Моя проблема в том, что код для липкого бокового меню внизу не работает, потому что вторая строка кода var contentNav = $('.content-nav').offset().top;
вызывает ошибку, которая читает "Uncaught TypeError: невозможно прочитать свойство" верх "из undefined", На самом деле, никакой другой код jQuery ниже этой второй строки вообще не работает, если они не расположены над ним.
После некоторых исследований, я думаю, проблема в том, что $('.content-nav').offset().top
не может найти указанный селектор, потому что он на другой странице. Если это так, я не могу найти решение.