Я знаю, что это действительно старо, но наткнулся на это, пытаясь найти собственное решение
Эта ссылка показывает, как это сделать действительно легким способом. По сути, все, что вам нужно, это следующий код (вместе с загруженным jQuery, конечно)
$(function() {
var $sidebar = $("#siderbar"),
$window = $(window),
offset = $sidebar.offset(),
topPadding = 15;
$window.scroll(function() {
if ($window.scrollTop() > offset.top) {
$sidebar.stop().animate({
marginTop: $window.scrollTop() - offset.top + topPadding
});
} else {
$sidebar.stop().animate({
marginTop: 0
});
}
});
})
Если вы не хотите анимировать анимацию, просто замените разделы анимации следующим образом:
$sidebar.stop().animate({ marginTop: VALUE });
с
$sidebar.css("marginTop", VALUE);