Как я могу заставить "боковую панель" фиксировать позицию, когда она достигает "Исправлен заголовок", а не верх страницы?
$(function() {
var top = $('#sidebar').offset().top - parseFloat($('#sidebar').css('marginTop').replace(/auto/, 0));
var footTop = $('#footer').offset().top - parseFloat($('#footer').css('marginTop').replace(/auto/, 0));
var maxY = footTop - $('#sidebar').outerHeight();
$(window).scroll(function(evt) {
var y = $(this).scrollTop();
if (y > top) {
if (y < maxY) {
$('#sidebar').addClass('fixed').removeAttr('style');
} else {
$('#sidebar').removeClass('fixed').css({
position: 'absolute',
top: (maxY - top) + 'px'
});
}
} else {
$('#sidebar').removeClass('fixed');
}
});
});
Эта строка:
if (y > top) {
если ваш фиксированный заголовок не имеет отступов (в противном случае вам придется учитывать это также), вы можете изменить это
if (y >= top - $('#fixedHeader').height()) {
удалить top:0px;
с вашей боковой панели css и добавьте ожидаемую высоту для вашего фиксированного заголовка (в настоящее время вы дали ему высоту 40 пикселей), поэтому
#sidebar.fixed {
position: fixed;
top: 40px;
}
Я также удалил #fixedHeader
из вашего #fixedHeader
, так как вы не указали, что это было/если вы даже хотели. Если вы хотите заполнить, как уже упоминалось выше, вам придется добавить это и в свой расчет.
y > (top - $('#fixedHeader').height())