Адаптивное горизонтальное многоуровневое выпадающее меню для сайта css3 + jQuery + html5

Как сделать простое адаптивное горизонтальное многоуровневое выпадающее меню для сайта на css3, jQuery, html5.

Адаптивное горизонтальное многоуровневое выпадающее меню для сайта css3 + jQuery + html5
1 год назад

Адаптивное горизонтальное многоуровневое выпадающее меню для сайта css3 + jQuery + html5

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

Мобильное меню
Структура адаптивного меню строится на основе взаимосвязи html + css + jquery. За отображение меню при изменении размера окна будет отвечать jquery.

Итак, давайте приступим к созданию адаптивного горизонтального меню. Ничего сложного нет, для начала создайте файл index.htm и вставьте в него код представленный ниже:
style.css
@import url('https://fonts.googleapis.com/css?family=Open+Sans|Roboto');

html{
 height: 100%;
}

body{
 font-family: 'Roboto', sans-serif;
 font-size: 14px;
 color:#474d59;
 background : #fafafa;
 background-image: -ms-linear-gradient(bottom, #B99BB7 0%, #D2CEEF 50%, #79C2D1 100%);
 background-image: -moz-linear-gradient(bottom, #B99BB7 0%, #D2CEEF 50%, #79C2D1 100%);
 background-image: -o-linear-gradient(bottom, #B99BB7 0%, #D2CEEF 50%, #79C2D1 100%);
 background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #B99BB7), color-stop(50, #D2CEEF), color-stop(100, #79C2D1));
 background-image: -webkit-linear-gradient(bottom, #B99BB7 0%, #D2CEEF 50%, #79C2D1 100%);
 background-image: linear-gradient(to top, #B99BB7 0%, #D2CEEF 50%, #79C2D1 100%);
}

#menu-wrap {
 position:relative;
}

.menu{
 display:block;
 margin: 0;
 padding: 0;
 background: #474d59;
 max-width: 900px;
 margin: 50px auto;
}
.menu li{
 display: inline-block;
 position: relative;
 z-index:10;
}

.menu li img {
 vertical-align: top;
 display: inline-block;
}

.menu li a {
 font-weight: bold;
 text-decoration:none;
 padding:11px;
 display:block;
 color:#ffffff;
 -webkit-transition: all 0.3s ease-in-out 0s;
 -moz-transition: all 0.3s ease-in-out 0s;
 -o-transition: all 0.3s ease-in-out 0s;
 -ms-transition: all 0.3s ease-in-out 0s;
 transition: all 0.3s ease-in-out 0s;
}

.menu li a:hover, 
.menu li:hover > a{
 color:#ffffff;
 background:#4a87c8;
}

.menu ul {
 display: none;
 margin: 0;
 padding: 0;
 width: 150px;
 position: absolute;
 top: 39px;
 left: 0px;
 background: #ffffff;
}

.menu ul li {
 display:block;
 float: none;
 background:none;
}

.menu ul li a {
 font-size:12px;
 font-weight:normal;
 display:block;
 color:#797979;
 border-left:3px solid #ffffff;
 background:#ffffff;
}
.menu ul li a:hover, .menu ul li:hover > a{
 background:#f0f0f0;
 border-left:3px solid #4787cb;
 color:#797979;
}

.menu li:hover > ul{
 display: block;
}
.menu ul ul {
 left: 149px;
 top: 0px;
}

#menu-icon {
 display:none;
}

@media screen and (max-width: 500px){
#menu-icon{
 width: 100%;
 height:45px;
 background: #474d59 url("img/menu.png") no-repeat left 12px center;
 cursor:pointer;
 display:block;
 float: left;
 color: #fff;
 line-height: 45px;
}

#menu-icon b {
 padding: 0 0 0 36px;
 color: #eceff4;
 line-height: 46px;
}

.menu{
 margin: 0 15px;
 clear:both;
 position:absolute;
 top:45px;
 width:100%;
 left: 0;
 z-index:100;
 padding:0;
 margin:0;
 display:none;
}

.menu li{
 display:block;
 margin:0;
}

.menu li a {
 background:#ffffff;
 color:#797979;
 border-top:1px solid #e0e0e0;
 border-left:3px solid #ffffff;
}

.menu li a img {
 display: none;
}

.menu li a:hover, .menu li:hover > a{
 background:#f0f0f0;
 color:#797979;
 border-left:3px solid #4787cb;
}

.menu ul {
 display:block;
 position:relative;
 top:0;
 left:0;
 width:100%;
}

.menu ul ul {
 left:0;
}	
}
menu.htm
<div id="menu-wrap">
<ul class="menu">
 <li><a href=""><img src="./img/1.png" alt=""> Главная</a></li>
 <li><a href=""><img src="./img/2.png" alt=""> Все для сайта</a>
  <ul>
  <li><a href="">Скрипты</a></li>
  <li><a href="">Статьи</a>
   <ul>
   <li><a href="">Скорость загрузки сайта</a></li>
   <li><a href="">Битые ссылки</a></li>
   <li><a href="">Раскрутка сайта</a></li>
   </ul>
  </li>
  </ul>
 </li>
 <li><a href=""><img src="./img/3.png" alt=""> Новости</a></li>
 <li><a href=""><img src="./img/4.png" alt=""> Контакты</a></li>
</ul>
</div>
Функционал выпадающего меню формируется правилами jquery. Создайте файл menu.js и вставьте в него код представленный ниже:
menu.js
$(document).ready(function(){

$('#menu-wrap').prepend("<div id='menu-icon'><b>Меню</b></div>");
$("#menu-icon").on("click", function(){
  $(".menu").slideToggle();
});

});
4,0K
Демо Скачать
Комментарии

    ×
    Используя сайт, вы подтверждаете, что вы прочитали и поняли политику о куки, политику конфиденциальности и наше пользовательское соглашение.