Bol*_*and 8 ng-bootstrap angular
我正在使用折叠:https://ng-bootstrap.github.io/#/components/collapse
但是,它没有动画; 甚至不在演示网站上.我应该如何实现?
因为他们使用"display:none"来隐藏和"display:block"来显示元素,所以你不能应用"transition"CSS属性.
因此,强制显示块,管理高度和不透明度以切换隐藏/显示:
.collapse, .collapse.in {
display: block !important;
transition: all .25s ease-in-out;
}
.collapse {
opacity: 0;
height: 0;
}
.collapse.in {
opacity: 1;
height: 100%;
}
Run Code Online (Sandbox Code Playgroud)
有了基本的过渡和不透明度/高度,它似乎更加流畅.
您可以使用关键帧制作自己的动画并应用于.collapse.in以获得更好的切换隐藏/显示体验.
然后,如果您在项目中使用Angular 2,则可以切换到ng2-bootstrap:http://valor-software.com/ng2-bootstrap/
小智 6
我认为这是一个很好的方法,它可以用于显示和折叠:(尽管它实际上不再需要ng-bootstrap了)
template.html:
Run Code Online (Sandbox Code Playgroud)<button (click)="isCollapsed = !isCollapsed">Toggle</button> <p [@smoothCollapse]="isCollapsed?'initial':'final'"> your data here </p>
。
component.ts:
Run Code Online (Sandbox Code Playgroud)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 ...
细节:
[ngbCollapse]="isCollapsed"去,<p>否则会破坏所有动画。而且我们不需要它,因为我们将高度设置为0希望对您有所帮助,我花了一天时间:P
| 归档时间: |
|
| 查看次数: |
11672 次 |
| 最近记录: |