I'm using Collapse: https://ng-bootstrap.github.io/#/components/collapse
However, it does not animate; even not on the demo site. How should I implement this??
Here's a good way to do it, I think, and it works both for revealing and collapsing: (though it doesn't really need ng-bootstrap anymore)
template.html:
<button (click)="isCollapsed = !isCollapsed">Toggle</button> <p [@smoothCollapse]="isCollapsed?'initial':'final'"> your data here </p>
.
component.ts:
import { trigger, state, style, animate, transition } from '@angular/animations'; @Component({ selector: 'app-my-component', templateUrl: './template.html', styleUrls: ['./style.scss'], animations: [ trigger('smoothCollapse', [ state('initial', style({ height:'0', overflow:'hidden', opacity:'0' })), state('final', style({ overflow:'hidden', opacity:'1' })), transition('initial=>final', animate('750ms')), transition('final=>initial', animate('750ms')) ]), ] }) export class MyComponent ...
Details:
[ngbCollapse]="isCollapsed"
in the <p>
otherwise it breaks all the animation. And we don't need it since we set the height to 0Hope it helps, I spent a day on it :P
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With