Фиксированное меню при прокрутке

сопровождение сайта

Очень часто на сайтах с большим количеством контента посетитель теряется на странице и чтобы найти навигационное меню приходится листать на самый верх страницы. Технологии не стоят на месте, экраны мониторов и их разрешения становятся больше, потому сейчас на сайте уже не жалко выделить сверху 40 пикселей под фиксированное меню при прокрутке страницы сайта. Посетитель сможет всегда видеть в каком он разделе находится, а также иметь быстрый доступ к навигационному меню. В конце концов это увеличивает глубину просмотра сайта 🙂

Какова суть фиксированного навигационного меню на сайте? Изначально наше меню находится на привычном ему месте, где-то в шапке, в моем случае на расстоянии 140px от верхнего края. Как только посетитель прокручивает страницу на эти самые 140px внизу, меню фиксируется в самом верху окна и там остается все оставшееся время, пока скролл не будет возвращен вновь в верхнее положение. 

Фиксированное меню при прокрутке страницы это по сути панель управления, которая всегда с тобой. Меню у нас будет простое, без выпадающих элементов.

От теории к практике. Все достаточно просто и минималистично, большая часть когда отдается стилям, которые вы уже сами настраиваете под себя. Я сделала фиксированное меню как на рисунке, при скролле цвет меню становится чуть прозрачным, чтобы оно не выглядело тяжелым и под ним был виден контент.

Наш HTML:


	 
	<div id="header">
	    <div id="navigation">
	        <ul id="menu">
	            <li><a href="">Сумки</a></li>
	            <li><a href="">Обувь</a></li>
	            <li><a href="">Шарфы</a></li>
	            <li><a href="">Одежда</a></li>
	            <li><a href="">Аксессуары</a></li>
	        </ul>
	    </div>
	</div>
	 

Наши стили. У меня меню шириной 1180px, расположено по центру. Шапка высотой 180px, меню с прокруткой в него входит и занимает 40px. Значит расстояние от верха 140px. Запомним это число)


	 
	#header {
	    height: 180px;
	}
	#navigation{
	    background: #EF0505;
	    height: 40px;
	    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.4);
	    font-size: 16px;
	    line-height: 40px;
	    position: relative;
	    top: 140px;
	}
	#navigation.fixed{
	    position: fixed;
	    top: 0;
	    width: 100%;
	    background: rgba(239, 5, 5, 0.95);
	}
	#navigation ul{
	    width: 1180px;
	    padding-left: 0;
	    margin: 0 auto;
	    display: block;
	}
	#menu li{
	    float: left;
	    list-style: none;
	    padding: 0 25px;
	    border-right: 1px solid #D60000;
	}
	#menu a {
	    color: #fff;
	    text-decoration: none;
	    font-family: Verdana;
	}
	#menu>li a:hover{
	    color: #656565;
	    transition: color 0.5s ease;
	}
	 

И вот те несколько строчек кода, которые творят волшебство) Мы задаем условия прокрутки страницы, выше 140px или ниже. В зависимости от этого присваивается класс fixed для нашего навигационного меню. А с этим классом, как указано выше мы делаем меню фиксированным и закрепленным сверху.

    jQuery(function($) {
	        $(window).scroll(function(){
	            if($(this).scrollTop()>140){
	                $('#navigation').addClass('fixed');
	            }
	            else if ($(this).scrollTop()<140){
	                $('#navigation').removeClass('fixed');
	            }
	        });
	    });
	 

Число 140 вы можете заменить на любое другое. Это ваш отступ меню от верхнего края.