Я использую следующий код для управления DIV с идентификатором «боковым»JQuery только огнь, если DIV # боковая панель существует на странице
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');
}
});
Однако, когда страница, которая ода не содержит Div # врезки оно проливает out error #sidebar is null (потому что его нет!)
Как я могу преобразовать этот код только в том случае, если на странице есть боковая панель div #?
Не совсем прямо на вопрос, но вы можете заменить весь контент прокрутки на это: '$ ('# sidebar'). ToggleClass ('fixed', $ (this) .scrollTop()> = top);' :) –
@Nick Спасибо! Всегда приятно очищать код. Это было на самом деле из учебника, который я нашел здесь: http://jqueryfordesigners.com/fixed-floating-elements/ –