Peço desculpas se esta pergunta já foi respondida. Tentei pesquisar soluções, mas não consegui encontrar nenhuma que se adequasse ao meu código. Ainda sou novo no jQuery.
Tenho dois tipos diferentes de menus fixos para duas páginas diferentes. Aqui está o código para ambos.
$(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();
});
});
Meu problema é que o código do menu lateral fixo na parte inferior não funciona porque a segunda linha do código var contentNav = $('.content-nav').offset().top;
dispara um erro que diz "TypeError não capturado: não é possível ler a propriedade 'superior' de indefinido". Na verdade, nenhum outro código jQuery abaixo dessa segunda linha funciona, a menos que sejam colocados acima dela.
Depois de alguma pesquisa, acho que o problema é que $('.content-nav').offset().top
não consigo encontrar o seletor especificado porque está em uma página diferente. Nesse caso, não consigo encontrar uma solução.