Смотрите мой пример скрипки здесь .Здесь важно убедиться, что вы используете setTimeout, чтобы избежать массовых событий наращивания, поскольку событие прокрутки окна вызывается много раз в зависимости от того, как пользователь прокручивает.
code
var scrollId;
$(document).scroll(scrollme);
function scrollme(){
window.clearTimeout(scrollId);
scrollId = window.setTimeout(scroll, 25);
}
function scroll(){
$(".block").stop().animate({"top": ($(window).scrollTop()) + 30 + "px"}, 550);
}