Помогите с меню - добавить css если меню открыто
Добрый день, есть меню бургер от boostrap 4
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="true" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
Если оно открыто, хочу css добавить в класс
.bg-dark {
background-color: #00011b !important;
}
что б стало так
.bg-dark {
background-color: #00011b !important;
height: 100%;height: 100%;
overflow-y: scroll;
}
но только когда бургер меню открыто, если меню закрываем, то удаляло обратно, иначе верстка ползет. Что нужно прописать в js.. вот как определить что открыли меню..
$(document).ready(function () {
$("navbar-toggler").click(function (e) {
......
});
});
и правильно ли я указываю $("navbar-toggler").click(function (e) { |
igorfelix89,
$(function() {
$('#navbarCollapse').on('hidden.bs.collapse', function () { alert("hidden");
// do something…
})
$('#navbarCollapse').on('show.bs.collapse', function () { alert("show");
// do something…
})
});
|
Спасибо за ответ. вот что мне удалось сделать
$(function() {
$('#navbarCollapse').on('hidden.bs.collapse', function () {
// do something…
var sideBar = document.querySelector('#menus');
sideBar.classList.remove('scrolly');
})
$('#navbarCollapse').on('show.bs.collapse', function () {
// do something…
var sideBar = document.querySelector('#menus');
sideBar.classList.add('scrolly');
})
});
html меню бургера: <nav class="navbar navbar-expand-lg navbar-dark fixed-top bg-dark" id="menus"> после bg-dark, дописываем .scrolly css:
.scrolly {height: 100%; overflow-y: scroll;}
Работает как надо! Но, видно мерцание меню, как будто бы есть доля секунды задержки.. глаза замечают что нет плавности. может быть есть еще какой-то способ ? |
а еще такой способ нашел.
$(function() {
$('#navbarCollapse').on('hidden.bs.collapse', function () {
// do something…
$('.bg-dark').removeClass('active');
})
$('#navbarCollapse').on('show.bs.collapse', function () {
// do something…
$('.bg-dark').addClass('active');
})
});
css: .bg-dark.active {height: 100%; overflow-y: scroll;} html : <nav class="navbar navbar-expand-lg navbar-dark fixed-top bg-dark" id="menus"> |
igorfelix89,
лучше сразу делать минимальный макет [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Спасибо, поигрался со стилями, убрал дрыг меню, немного деревенский способ, но получилось по другому и тоже вполне неплохой вариант!!
|
| Часовой пояс GMT +3, время: 00:54. |