Pido disculpas si esta pregunta ya ha sido respondida. Intenté buscar soluciones pero no pude encontrar ninguna que se adaptara a mi código. Todavía soy nuevo en jQuery.
Tengo dos tipos diferentes de menús adhesivos para dos páginas diferentes. Aquí está el 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();
});
});
Mi problema es que el código del menú lateral adhesivo en la parte inferior no funciona porque la segunda línea de código var contentNav = $('.content-nav').offset().top;
genera un error que dice "Error de tipo no detectado: No se puede leer la propiedad 'superior' de indefinida". De hecho, ningún otro código jQuery debajo de esa segunda línea funciona a menos que se coloquen encima.
Después de investigar un poco, creo que el problema es que $('.content-nav').offset().top
no se puede encontrar el selector especificado porque está en una página diferente. Si es así, no puedo encontrar una solución.