Je m'excuse si cette question a déjà reçu une réponse. J'ai essayé de rechercher des solutions mais je n'ai trouvé aucune qui convenait à mon code. Je suis encore nouveau sur jQuery.
J'ai deux types différents de menus collants pour deux pages différentes. Voici le code pour les deux.
$(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();
});
});
Mon problème est que le code pour le menu latéral collant en bas ne fonctionne pas car la deuxième ligne de code var contentNav = $('.content-nav').offset().top;
déclenche une erreur qui lit "Uncaught TypeError: Cannot read property 'top' of undefined". En fait, aucun autre code jQuery en dessous de cette deuxième ligne ne fonctionne à moins qu'ils ne soient placés au-dessus.
Après quelques recherches, je pense que le problème est que $('.content-nav').offset().top
le sélecteur spécifié ne peut pas être trouvé car il se trouve sur une page différente. Si oui, je ne trouve pas de solution.