J'utilise le code suivant pour commander un div avec l'ID barre latérale 'jquery seulement si le feu div # barre latérale existe à la page
var top = $('#sidebar').offset().top - parseFloat($('#sidebar').css('marginTop').replace(/auto/, 0));
$(window).scroll(function (event) {
// what the y position of the scroll is
var y = $(this).scrollTop();
// whether that's below the form
if (y >= top) {
// if so, ad the fixed class
$('#sidebar').addClass('fixed');
} else {
// otherwise remove it
$('#sidebar').removeClass('fixed');
}
});
Cependant, quand une page qui odes contient div # barre latérale, il jette sur une erreur indiquant que #sidebar est null (parce que ce n'est pas là!)
Comment puis-je convertir ce code pour arriver seulement s'il y a div # sidebar sur la page?
Pas vraiment directement à la question, mais vous pouvez remplacer le contenu entier du défilement avec ceci: '$ ('# sidebar'). ToggleClass ('fixed', $ (this) .scrollTop()> top);' :) –
@Nick Merci! Toujours agréable de nettoyer le code. C'était en fait d'un tutoriel que j'ai trouvé ici: http://jqueryfordesigners.com/fixed-floating-elements/ –