lam*_*ade 5 css-transitions angular angular-animations
使用 Angular Animations 可以在元素及其子元素进入或离开视图时向它们添加过渡/动画,如下所示:
@Component({
animations: [
trigger('containerTrigger', [
transition(':enter', [
style({ opacity: 0, transform: 'translateY(-10px)' }),
animate('250ms 100ms', style({ opacity: 1, transform: 'none' })),
]),
]),
]
})
Run Code Online (Sandbox Code Playgroud)
虽然这工作正常,但当向所选元素及其子元素添加更复杂的过渡/动画时,它会很快变得复杂。
同样对于主要在项目中维护 CSS 的人来说,可能很难习惯 Angular 的动画语法。然后更容易阅读和维护这样的 CSS:
.container {
opacity: 0;
&.is-active {
opacity: 1;
transition: all 0.2s linear;
}
}
.container__heading {
transform: translateX(-10px);
.container.is-active & {
transform: none;
transition: all 0.2s linear;
}
}
Run Code Online (Sandbox Code Playgroud)
问题:是否可以在:enter和:leave事件上添加 CSS 类而不是运行 Angular 动画?
不幸的是,您无法使用 Angulars 动画 API 添加或删除类(请参阅如何为 Angular 2/4 中的动画状态指定类名?)。
在这种情况下,使用eg进行绑定[ngClass]也不起作用,因为当:enter动画触发时,该元素尚未在实际的DOM中,因此任何应用的css都不会产生影响。https://angular.io/guide/transition-and-triggers#enter-and-leave-aliases
| 归档时间: |
|
| 查看次数: |
405 次 |
| 最近记录: |