24 октября 2017
10246
Выдвигающееся боковое меню

Выдвигающееся боковое меню

JQuery
Демонстрация » Скачать »

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

 

Поэтому не забывайте подписываться на нас, чтобы быть в курсе всех событий, а мы в свою очередь не забудем вас радовать новыми и полезными материалами!) Ну так ладно, что то я увлекся и ушел от темы) Давайте остановимся на нашем меню и я постараюсь рассказать о нем более подробнее.

 

 

HTML. Что нам потребуется подключить и какой будет каркас страницы...

 

Для начала подключаем, как обычно файл стилей demo.css, файл стилей font-awesome.min.css для наших иконок, скачать можете с официального сайта http://fontawesome.io/, далее нам потребуется подключить библиотеку jQuery и не забываем про сам скрипт menu.js

 

<link rel="stylesheet" href="css/demo.css">
<link rel="stylesheet" href="css/font-awesome.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="js/menu.js"></script>

 

Теперь формируем наш каркас HTML разметки для меню. Для этого создаем тег nav и прописываем ему идентификатор menu, который будет добавлять и удалять класс menu-open с помощью метода toggleClass.

Вся эта конструкция будет работать исключительно при клике на кнопку с идентификатором menuToggle.

 

Метод ToggleClass

 

<!-- Меню -->
<nav id="menu">
	<div id="menuContent">
		<a href="#"><span class="fa fa-home"></span> Главная</a>
		<a href="#"><span class="fa fa-code"></span> Услуги</a>
		<a href="#"><span class="fa fa-list-ol"></span> Портфолио</a>
		<a href="#"><span class="fa fa-users"></span> Отзывы</a>
		<a href="#"><span class="fa fa-link"></span> Контакты</a>
	</div>
		
	<!-- Кнопка меню -->
	<div id="menuToggle"><i class="fa fa-bars"></i></div>
</nav>

 

Теперь давайте оформим, немного нашу страницу в нашем авторском стиле от команды проекта RootHelp.ru

 

<div class="rh">
	<img src="img/rh_logo_white.png" alt="Выдвигающееся боковое меню">
	<span>ROOTHELP.RU <p>любительский блог веб-программирования</p><hr></span>
		<ul>
			<li><a href="https://vk.com/iroothelp" target="_blank" title="Подпишись на VK страницу"><span class="fa fa-vk"></span></a></li>
			<li><a href="https://twitter.com/roothelp_ru" target="_blank" title="Подпишись на Twitter"><span class="fa fa-twitter"></span></a></li>
			<li><a href="https://www.youtube.com/channel/UCeOO305pt0FKB60tYoQMYPQ" target="_blank" title="Подпишись на канал YouTube"><span class="fa fa-youtube"></span></a></li>
		</ul>	
</div>

 

 

JQUERY. Немного кода и ничего лишнего...

 

Создаем функцию по клику и прописываем ей идентификатор menuToggle. Далее обращаемся к идентификатору menu и добавляем, удаляем класс menu-open.

 

$(function(){
	$('#menuToggle').on('click', function(){
		$('#menu').toggleClass('menu-open');
	});
})(jQuery);

 

 

CSS. Базовые свойства и варианты изменения расположения меню...

 

Для начала нам нужно идентификатору menu задать ряд обязательных свойств, таких как: позиционирование, расположение, ширину и высоту. После чего, чтобы меню изначально было выдвигалось и скрывалось, прописываем класс menu-open

 

#menu {
	position: fixed;
	right: -190px;
	width: 250px;
	height: 100%;
	top: 0;
}

#menu.menu-open {
	right: 0;
}

 

Теперь работаем с каркасом блока меню, а точнее с идентификатором menuContent и прописываем ему обязательные свойства, таких как: позиционирование, расположение, ширину, цвет, высоту.

Далее уже занимаемся самим оформлением меню.

 

#menuContent {
	position: absolute;
	left: 60px;
	background: #2b271a;
	width: 200px;
	height: 100%;
	padding-top: 114px;
}

#menu a {
	margin-left: 40px;
	color: #00ffff;
	display: block;
	font-size: 20px;
	line-height: 40px;
	text-decoration:none;
}

#menu a:hover {
	color: #00ff40;
}

#menu{
	-webkit-transition: all .3s ease;
	   -moz-transition: all .3s ease;
		-ms-transition: all .3s ease;
		 -o-transition: all .3s ease;
			transition: all .3s ease;
}

 

И напоследок, нам остается только оформить кнопку и задать ей нужные свойства, решающими из которых являются: позиционирование, расположение, ширина и высота. Для красоты накладываем анимацию с помощью transition.

 

#menuToggle {
	position: absolute;
	top: 120px;
	text-align: center;
	font-size: 14px;
	color: #ffffff;
	width: 40px;
	height: 40px;
	line-height: 40px;
	cursor: pointer;
	background: rgba(0,0,0,0.45);
	-webkit-transition: all .1s ease-in-out;
	   -moz-transition: all .1s ease-in-out;
		-ms-transition: all .1s ease-in-out;
		 -o-transition: all .1s ease-in-out;
			transition: all .1s ease-in-out;
}

#menuToggle:hover {
	color: #00ff40;
	background: rgba(0,0,0,0.2);
	-webkit-transition: all .1s ease-in-out;
	   -moz-transition: all .1s ease-in-out;
		-ms-transition: all .1s ease-in-out;
		 -o-transition: all .1s ease-in-out;
			transition: all .1s ease-in-out;
}

 

Теперь нам осталось, только дописать оформление к нашей страницы, чтобы оно красиво смотрелось)

 

body{
	background:#757575;
}

.rh img{
	margin: 0 auto;	
	display:block;
}

.rh span{
	color:#fff;
	display:block;
	text-align:center;
	font-size:41px;
}

.rh span>p{
	color:#f1f3e9;
	font-size:15px;
}

hr{
	border:0.4px solid #fff;
	background:#fff;
	color:#fff;
	width:30%;
	margin:12px auto;
}

.rh ul{
	list-style:none;
	margin:5px auto;
	width:54%;
}

.rh ul li{
	float:left;
	margin:20px;
}

.rh ul li a{
	text-decoration:none;
}

.rh ul li a span{
	padding:13px;
}

.rh ul li a span:hover{
	background:#c7c9bd;
	padding:8px;
	border: 1px dashed #fff;
}

 

 

P.S. Делаем расположение меню слева...

 

Для этого нам надо просто дописать и изменить свойства для #menu, #menu.menu-open и #menuToggle.

 

#menu {
 	left: -262px;
}

#menu.menu-open {
	left: -60px;
}

#menuToggle {
    margin-left: 275px;
}

 

А на этом все, спасибо большое за внимание и не забывайте подписываться на нас, а также делится с другими полезным и нужным контентом!)