Перепрошую, якщо на це питання вже було дано відповідь. Я намагався шукати рішення, але не міг знайти жодного, що відповідає моєму коду. Я все ще новачок у 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: Не вдається прочитати властивість" top "з undefined". Насправді жоден інший код jQuery під цим другим рядком взагалі не працює, якщо він не розміщений над ним.
Після деяких досліджень, я думаю, проблема полягає в тому, що $('.content-nav').offset().top
не вдається знайти вказаний селектор, оскільки він знаходиться на іншій сторінці. Якщо так, я не можу знайти рішення.