Mi scuso se questa domanda ha già ricevuto risposta. Ho provato a cercare soluzioni ma non sono riuscito a trovarne nessuna adatta al mio codice. Sono ancora nuovo su jQuery.
Ho due diversi tipi di menu permanenti per due pagine diverse. Ecco il codice per entrambi.
$(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();
});
});
Il mio problema è che il codice per il menu laterale fisso in basso non funziona perché la seconda riga di codice var contentNav = $('.content-nav').offset().top;genera un errore che dice "Uncaught TypeError: Cannot read property 'top' of undefined". In effetti, nessun altro codice jQuery sotto quella seconda riga funziona a meno che non sia posizionato sopra di essa.
Dopo alcune ricerche, penso che il problema sia che $('.content-nav').offset().topnon riesco a trovare il selettore specificato perché si trova su una pagina diversa. Se è così, non riesco a trovare una soluzione.