Меню №8
- 4,13 КБ
- HTML, CSS, JS
- Меню
- вертикальное, выпадающее
- Лицензия MIT
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" />
<ul id="accordion" class="accordion">
<li>
<div class="link"><i class="fa fa-database"></i>Веб-дизайн<i class="fa fa-chevron-down"></i></div>
<ul class="submenu">
<li><a href="#">Photoshop</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
</ul>
</li>
<li>
<div class="link"><i class="fa fa-code"></i>Кодинг<i class="fa fa-chevron-down"></i></div>
<ul class="submenu">
<li><a href="#">Javascript</a></li>
<li><a href="#">jQuery</a></li>
<li><a href="#">Ruby</a></li>
</ul>
</li>
<li>
<div class="link"><i class="fa fa-mobile"></i>Устройства<i class="fa fa-chevron-down"></i></div>
<ul class="submenu">
<li><a href="#">Tablet</a></li>
<li><a href="#">Mobile</a></li>
<li><a href="#">Desktop</a></li>
</ul>
</li>
<li>
<div class="link"><i class="fa fa-globe"></i>Глобальные<i class="fa fa-chevron-down"></i></div>
<ul class="submenu">
<li><a href="#">Google</a></li>
<li><a href="#">Bing</a></li>
<li><a href="#">Yahoo</a></li>
</ul>
</li>
</ul>
body {
font-family: "Open Sans", Arial, Helvetica, Sans-serif, Verdana, Tahoma;
}
ul {
list-style-type: none;
}
* {
margin: 0;
padding: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
a {
color: #b63b4d;
text-decoration: none;
}
.accordion {
width: 100%;
max-width: 360px;
margin: 30px auto 20px;
background: #fff;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.accordion .link {
cursor: pointer;
display: block;
padding: 15px 15px 15px 42px;
color: #4d4d4d;
font-size: 14px;
font-weight: 700;
border-bottom: 1px solid #ccc;
position: relative;
-webkit-transition: all 0.4s ease;
-o-transition: all 0.4s ease;
-moz-transition: all 0.4s ease;
transition: all 0.4s ease;
}
.accordion li:last-child .link {
border-bottom: 0;
}
.accordion li i {
position: absolute;
top: 16px;
left: 12px;
font-size: 18px;
color: #595959;
-webkit-transition: all 0.4s ease;
-o-transition: all 0.4s ease;
-moz-transition: all 0.4s ease;
transition: all 0.4s ease;
}
.accordion li i.fa-chevron-down {
right: 12px;
left: auto;
font-size: 16px;
}
.accordion li.open .link {
color: #b63b4d;
}
.accordion li.open i {
color: #b63b4d;
}
.accordion li.open i.fa-chevron-down {
-webkit-transform: rotate(180deg);
-o-transform: rotate(180deg);
-moz-transform: rotate(180deg);
transform: rotate(180deg);
}
.submenu {
display: none;
background: #444359;
font-size: 14px;
}
.submenu li {
border-bottom: 1px solid #4b4a5e;
}
.submenu a {
display: block;
text-decoration: none;
color: #d9d9d9;
padding: 12px;
padding-left: 42px;
-webkit-transition: all 0.25s ease;
-o-transition: all 0.25s ease;
-moz-transition: all 0.25s ease;
transition: all 0.25s ease;
}
.submenu a:hover {
background: #b63b4d;
color: #fff;
}
$(function () {
var Accordion = function (el, multiple) {
this.el = el || {};
this.multiple = multiple || false;
var links = this.el.find(".link");
links.on("click", { el: this.el, multiple: this.multiple }, this.dropdown);
};
Accordion.prototype.dropdown = function (e) {
var $el = e.data.el;
($this = $(this)), ($next = $this.next());
$next.slideToggle();
$this.parent().toggleClass("open");
if (!e.data.multiple) {
$el.find(".submenu").not($next).slideUp().parent().removeClass("open");
}
};
var accordion = new Accordion($("#accordion"), false);
});
Данный фрагмент кода представляет собой удачное сочетание HTML, CSS и JavaScript, которые вместе создают стильное и функциональное выпадающее меню. Этот тип меню часто сравнивают с аккордеоном за его способность плавно раскрываться и складываться, предлагая элегантное решение для навигации по различным категориям или опциям без перегрузки веб-страницы.
В HTML части заложена структура нашего меню-аккордеона с помощью упорядоченного списка. Каждый элемент в этом списке сделан кликабельным, открывая скрытое подменю с дополнительными опциями. Вертикальная структура меню идеально подходит для эффективной организации контента, сохраняя при этом привлекательный внешний вид.
CSS отвечает за стильное оформление нашего меню, не только придавая ему жизнь с помощью цветов, шрифтов и интервалов, но и управляя состоянием скрытых/открытых подменю. Определенные стили применяются для того, чтобы меню было не только функциональным, но и визуально привлекательным, с плавными переходами, которые улучшают пользовательский опыт. Использование CSS-переходов для эффекта выпадения обеспечивает плавное и естественное раскрытие и закрытие меню, что способствует его полированному и профессиональному виду.
Наконец, код JavaScript придает интерактивное поведение выпадающему меню. Он реагирует на клики по элементам меню, вызывая раскрытие или скрытие ассоциированного подменю. Скрипт умело позволяет открывать одновременно только одно подменю или несколько, в зависимости от настройки. Эта гибкость делает выпадающее меню универсальным, подходящим для широкого спектра потребностей веб-дизайна.
Вместе эти три компонента создают выпадающее меню, которое не только визуально привлекательно, но и улучшает пользовательский опыт за счет своей плавной, интерактивной функциональности. Это яркий пример того, как HTML, CSS и JavaScript могут быть объединены для создания веб-элементов, которые одновременно красивы и практичны.