Довольно сложно добиться чистой анимации скольжения вверх / вниз, потому что BootstrapVue использует display: none / block, чтобы скрыть / показать выпадающее меню. То, что вы можете сделать, это манипулировать максимальной высотой элемента, как объяснено здесь .
Я добавил «анимированный» класс в родительский элемент, например, ваш b-navbar, чтобы выбрать, какой выпадающий список должен быть анимирован. Затем я удалил display: none из стандартного состояния раскрывающегося списка и скрыл его, установив его max-height и padding равным 0, а границу - none. Когда вы нажимаете кнопку, раскрывающийся список получает класс 'show'so', вы можете присвоить ему максимальную высоту, отличную от 0, как объяснено в ответе, который я с вами связал, вы должны установить его выше, чем фактическая высота в противном случае оно будет вырезано.
.animated {
.dropdown-menu {
overflow: hidden;
display: block!important;
max-height: 0!important;
&:not(.show) {
padding: 0;
border: none;
}
&.show {
transition: max-height 300ms ease-in-out;
max-height: 500px!important; //this must have to be higher than the max height of the dropdown list
}
}
}