角动画应用于元素重排

时间:2019-02-11 10:16:41

标签: angular animation

在ngFor中,我使用角度“触发”属性来模仿手风琴的角度行为。

最初,我将所有具有动画状态的列表元素隐藏为“ hideEle”,但是在单击特定元素时,我将显示具有动画状态的特定元素为“ showEle”。

这可以按预期工作,但是使用向上/向下箭头向上或向下移动元素时,hideEle => showEle动画将以角度应用。

我还使用trackBy为每个角度元素提供唯一的ID,但问题仍然相同。

trigger('toggleState', [
      state("showEle" , style({ background: "#f1f2f6" })),
      state("hideEle" style({ height: '0', padding: 0, display: 'none' })),
      // transition
      transition('showEle => hideEle', animate('500ms ease-in')),
      transition('hideEle => showEle', animate('500ms ease-out')),
    ]);

最初,元素用

隐藏
  

显示:“无”

我们非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

添加了一个无效状态和过渡效果(hideEle => void),以删除不需要的动画。

state("void", style({height: 0, display: "none"})),
transition("hideEle <=> void", animate("500ms ease-in"))