В последнее время входит в моду использование так называемого "Липкого меню", (mail.ru, Тануки,)

В сети описано немало способов реализации, однако на момент написания статьи простого, красивого и стабильного решения найдено не было.

Поэтому предлагаю следующее решение, использующее JavaSсript и CSS.

Сделаем так, чтобы при прокрутке экрана пользователем на определенное нами расстояние(в пикселях), меню будет цепляться к верхнему краю экраха в позиции fixed.

Приступим!

В JavaScript есть событие, соответствующее скроллу экрана: .... Смысл метода сводится к тому, чтобы при событии "Промотка экрана" специальная функция возвращала значение этой самой промотки, и, в зависимости от этого значения, находила меню по ID, переключала его CSS стиль на fixed и обратно.

В данном примере размер шапки установлен 300 рх, при необходимости вы можете заменить его на свой.

JavaScript:
<script>
window.onscroll = function(){
	var scrolled = window.pageYOffset || document.documentElement.scrollTop;
	var o=document.getElementById('sticky');
	if (scrolled > 300) o.setAttribute('class','fix');
	else o.setAttribute('class','not_fix');
}
</script>


CSS:
<style>
.fix{
	position:fixed;
	top: 30px;
	left:140px;
}
.not_fix{
	position: absolute;
	top: 120px;
	left:100px;
}
</style>


HTML:
<body style="height:2000px"> 
	<div id="sticky">Наше меню</div> 
</body>