Я не думаю, что есть способ предотвратить применение класса .collapsing
к элементу .collapse, поэтому всегда будет задержка.Вместо Collapse вы можете использовать jQuery для переключения отображения Navbar ...
$('[data-toggle=display]').on('click', function() {
var target = $($(this).data("target"));
target.toggleClass("d-none d-block");
})
https://www.codeply.com/go/nFbagrqHWa
EDIT
Вот как работает компонент Свернуть ...
.collapse
скрывает содержимое
.collapsing
применяется применяется когда начинается переход (событие show.bs.collapse
запускается)
.collapsing
равно удалено , и .collapse.show
применяется, когда конец перехода (shown.bs.collapse
событие инициируется)
Обратное происходит, когда элемент запускается снова и запускаются события hide.bs.collapse
и hidden.bs.collapse
.
show.bs.collapse
Событие наступает, когда применяется класс .collapsing
.Вы можете добавить обработчик для события show.bs.collapse
, чтобы добавить .show
класс , когда применяется класс .collapsing
.Однако это не будет влиять на анимацию перехода, и все равно будет задержка.
Добавить .show
при применении .collapsing
..
$('.navbar-collapse').on('show.bs.collapse', function () {
$(this).addClass("show");
});
И, при необходимости, удалите его при событии 'hide'.
$('.navbar-collapse').on('show.bs.collapse', function () {
$(this).addClass("show");
}).on('hide.bs.collapse', function () {
$(this).removeClass("show");
}).
https://www.codeply.com/go/YBXzYG8fgy
Или переопределите переход с помощью CSS:
#navbarNav {transition: none;}
https://www.codeply.com/go/zCAqhDVnDW