var lastScrollY = 0; $(function(){ var diffY = document.documentElement.scrollTop; $(window).scroll(function(){ var diffTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop) + 300; if (diffY != lastScrollY) { percent = .10 * (diffY - lastScrollY); if (percent > 0) { percent = Math.ceil(percent); } else { percent = Math.floor(percent); } diffTop = parseInt($("#quick_menu").offset().top) + percent; lastScrollY = lastScrollY + percent; } $("#quick_menu").stop(); $("#quick_menu").animate({"top": diffTop}, 500); }); });