Commit 3919c0aa authored by Nikolay Gromov's avatar Nikolay Gromov

Добавил компонент collapse

parent 4bd3287d
...@@ -3,9 +3,8 @@ ...@@ -3,9 +3,8 @@
<a <a
class="navbar__toggler" class="navbar__toggler"
href="#main-nav-wrapper" href="#main-nav-wrapper"
id="navbar-toggler"
data-toggle="collapse" data-toggle="collapse"
data-toggle-this-class="navbar__toggler-icon--open" data-toggle-this-class="navbar__toggler--open"
aria-controls="main-nav-wrapper" aria-controls="main-nav-wrapper"
aria-expanded="false"> aria-expanded="false">
<span class="navbar__toggler-icon"></span> <span class="navbar__toggler-icon"></span>
...@@ -13,9 +12,9 @@ ...@@ -13,9 +12,9 @@
<button <button
class="btn" class="btn"
data-target="#main-nav-wrapper"
data-toggle-this-class="btn--primary" data-toggle-this-class="btn--primary"
data-toggle="collapse" data-toggle="collapse"
data-target="#main-nav-wrapper"
aria-controls="main-nav-wrapper" aria-controls="main-nav-wrapper"
aria-expanded="false"> aria-expanded="false">
показать меню показать меню
......
$('[data-toggle="collapse"]').on('click.nth.collapse', function(e){
e.preventDefault();
// Определим ID целевого элемента
var $collapseBlockId = $(this).attr('href');
if(!$collapseBlockId) {
$collapseBlockId = $(this).data('target');
}
// Размернем или свернём целевой элемент
$($collapseBlockId).slideToggle(250);
// Найдем все триггеры открытия и переключим им классы
var $triggers = $('[data-toggle="collapse"][href="'+$collapseBlockId+'"], [data-toggle="collapse"][data-target="'+$collapseBlockId+'"]');
$triggers.each(function(){
$(this).toggleClass($(this).data('toggle-this-class'));
});
// Сменим aria-expanded
$triggers.each(function(){
if($(this).attr('aria-expanded') == 'false') {
$(this).attr('aria-expanded', 'true');
}
else {
$(this).attr('aria-expanded', 'false');
}
});
});
...@@ -67,6 +67,27 @@ ...@@ -67,6 +67,27 @@
@media (min-width: @screen-lg) { @media (min-width: @screen-lg) {
display: none; display: none;
} }
&--open {
.navbar__toggler-icon {
transition: background 0.2s 0;
background: transparent;
&:before,
&:after {
transition: top 0.2s, transform 0.2s 0.2s;
top: 0;
}
&:before {
transform: rotate3d(0, 0, 1, 45deg);
}
&:after {
transform: rotate3d(0, 0, 1, -45deg);
}
}
}
} }
&__toggler-icon { &__toggler-icon {
...@@ -99,30 +120,9 @@ ...@@ -99,30 +120,9 @@
&:after { &:after {
top: -1rem; top: -1rem;
} }
// Модификатор «открытого» состояния (крестик)
&--open {
transition: background 0.2s 0;
background: transparent;
&:before,
&:after {
transition: top 0.2s, transform 0.2s 0.2s;
top: 0;
}
&:before {
transform: rotate3d(0, 0, 1, 45deg);
}
&:after {
transform: rotate3d(0, 0, 1, -45deg);
}
}
} }
&__slidable-content { &__slidable-content {
padding-top: 0.5em;
// Если JS работает, будем скрывать и показывать по клику // Если JS работает, будем скрывать и показывать по клику
.js & { .js & {
......
...@@ -24,10 +24,9 @@ ...@@ -24,10 +24,9 @@
<div class="navbar__inner"> <div class="navbar__inner">
<div class="navbar__left"> <div class="navbar__left">
<a href="/" class="logo navbar__logo">NTH start project</a> <a href="/" class="logo navbar__logo">NTH start project</a>
<a class="navbar__toggler" href="#main-nav-wrapper" id="navbar-toggler" data-toggle="collapse" data-toggle-this-class="navbar__toggler-icon--open" aria-controls="main-nav-wrapper" aria-expanded="false"> <a class="navbar__toggler" href="#main-nav-wrapper" data-toggle="collapse" data-toggle-this-class="navbar__toggler--open" aria-controls="main-nav-wrapper" aria-expanded="false">
<span class="navbar__toggler-icon"></span> <span class="navbar__toggler-icon"></span>
</a> </a>
<button class="btn" data-toggle-this-class="btn--primary" data-toggle="collapse" data-target="#main-nav-wrapper" aria-controls="main-nav-wrapper" aria-expanded="false">показать меню</button>
</div> </div>
<div class="navbar__right"> <div class="navbar__right">
<div class="navbar__slidable-content" id="main-nav-wrapper"> <div class="navbar__slidable-content" id="main-nav-wrapper">
...@@ -72,7 +71,7 @@ ...@@ -72,7 +71,7 @@
</li> </li>
</ul> </ul>
</nav> </nav>
<p>Внимание! Работа этого компонента зависит от наличия в сборке компонента collapse</p> <p>Внимание! Работа этого компонента зависит от наличия в сборке jQuery</p>
<form class="navbar__form"> <form class="navbar__form">
<div class="fields-group"> <div class="fields-group">
<label class="field-text fields-group__item"> <label class="field-text fields-group__item">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment