У меня на
сайте реализовано аналогичное поведение футера, можете посмотреть реализацию там. Вкратце, при добавлении элемента на страницу (у меня добавляются товары в список) вызывается функция, которая проверяет, находится ли футер в видимой области, и в зависимости от этого добавляет или убирает футеру класс, который отвечает за положение футера (прижат/отжат).
Вот сама функция:
function togglefooter() {
var $marker = $('#list');
var $win = $(window);
if ($win.scrollTop() + $win.height() - 55 < 55*$('#list').children().length + $marker.offset().top) {
$('#control').addClass('navbar-default navbar-fixed-bottom');
}
else {$('#control').removeClass('navbar-default navbar-fixed-bottom');}
}
Не претендую на эталонность, но работает, меня это устраивает =)