Угловой коллапс ngx-bootstrap не анимирован

Я использую angular 5 и ngx-bootstrap, поэтому, когда я пытался добавить коллапс, следуя коллапсу docs, у меня есть рабочий пример, но без анимации (свернутое изображение исчезает и появляется мгновенно без эффектов).

Так есть ли способ показать анимацию?


person Abdennacer Lachiheb    schedule 25.03.2018    source источник
comment
Анимация еще не поддерживается ngx-bootstrap   -  person IlyaSurmay    schedule 26.03.2018
comment
@IlyaSurmay Есть ли на данный момент рабочие места, спасибо?   -  person Abdennacer Lachiheb    schedule 26.03.2018
comment
Боюсь, на данный момент обходного пути нет. В наших планах добавление анимации github.com/valor-software/ngx-bootstrap/ issues / 801   -  person IlyaSurmay    schedule 26.03.2018
comment
Любой найдет это сейчас, теперь у них есть опция `[isAnimated] = true в документации.   -  person Mark    schedule 07.10.2020


Ответы (4)


Это могло быть решением для всего проекта.

.collapse {
    transition: all 0.3s ease-out;
    display: block !important;
    overflow: hidden !important;
    max-height: 0;
}

.collapse.in {
    transition: all 0.5s ease-in;
    max-height: 9999px; /*any number which is lager than a height of any of your elements*/
}
person Oleg Polezky    schedule 02.11.2018
comment
При такой большой максимальной высоте ваша анимация будет очень быстрой (она должна пройти 9999 пикселей за 0,5 секунды). - person Pieter De Bie; 07.01.2019

У меня была такая же проблема, и я решил ее с помощью трюка css. У меня это сработало. Я надеюсь, что это сработает для вас. Это происходит потому, что ngx-bootstrap не использует класс ".collapsing", поэтому я внес некоторые изменения в свой код.

#your_nav{
    display: block !important;
    max-height: 1px !important;
    -moz-transition: all 0.3s ease-in-out;
    -o-transition: all 0.3s ease-in-out;
    -webkit-transition: all 0.3s ease-in-out;
    -ms-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
}
#your_nav.show{
    max-height: 230px !important;
}
person Irfan    schedule 15.05.2018

Следующий ответ для ngb версии 5.x.x

Если вы хотите анимировать директиву [ngbCollapse]

используйте код в файле scss вашего компонента и измените следующий scss в соответствии с вашими требованиями:

.collapse {
  transition: transform .35s, opacity .35s, max-height .9s ease-out;
  opacity: 0;
  max-height: 0;
  // transform: translateY(100%);
  display: block !important;

  &.show {
    opacity: 1;
    max-height: 600px;
    // transform: translateY(0);
  }
}

или если вы используете CSS: используйте указанный ниже код:

.collapse {
  transition: transform .35s, opacity .35s, max-height .9s ease-out;
  opacity: 0;
  max-height: 0;
  // transform: translateY(100%);
  display: block !important;

}

.collapse.show {
  opacity: 1;
  max-height: 600px;
  // transform: translateY(0);
}
person Parth Developer    schedule 10.02.2020

В моем случае я просто добавил [isAnimated] = true, как показано в https://valor-software.com/ngx-bootstrap/#/collapse#animated.

<div id="collapseBasic" [collapse]="isCollapsed" [isAnimated]="true"> ...
person Stanislav    schedule 16.11.2020