angular - 动画同级元素

标签 angular angular-animations

在我的应用程序中,我有 2 个兄弟元素。一个元素被隐藏,我可以通过按钮切换它的可见性。当这个隐藏元素变得可见时,我添加了一个动画。问题是,同级元素没有动画。它只是跳到新位置。知道如何解决这个问题吗?请参阅stackblitz示例。

app.component.ts

import { Component } from '@angular/core';
import { animate, style, transition, trigger } from "@angular/animations";

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css',],
  animations: [
      trigger(
          "enterAnimation", [
              transition(":enter", [
                  style({transform: "translateY(-100%)", opacity: 0}),
                  animate("500ms", style({transform: "translateY(0)", opacity: 1}))
              ]),
              transition(":leave", [
                  style({transform: "translateY(0)", opacity: 1}),
                  animate("500ms", style({transform: "translateY(-100%)", opacity: 0}))
              ])
          ]
      )
  ],
})
export class AppComponent  {
  visible: boolean = false;

  toggle(): void {
    this.visible = !this.visible;
  }
}

app.component.html

<div class="box1" *ngIf="visible" [@enterAnimation]></div>
<div class="box2"></div>

<button (click)="toggle()">Toggle</button>

最佳答案

不要使用变换,而是使用高度来获得这种效果。 demo

trigger(
          "enterAnimation", [
              transition(":enter", [
                  style({height: "0px", opacity: 0}),
                  animate("500ms", style({height: "50px", opacity: 1}))
              ]),
              transition(":leave", [
                  style({height: "50px", opacity: 1}),
                  animate("500ms", style({height: "0px", opacity: 0}))
              ])
          ]
      )

关于angular - 动画同级元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55863606/

相关文章:

css - 如何在 Angular2 的 css 中使用 Material 主题颜色?

angular - 可选地在 Angular 4 中应用 http 拦截器

javascript - 动画化动态 Angular 组件的移除?

特定项目的 Angular 页面过渡动画

Angular 路由器过渡动画有条件地左右滑动

html - Angular 4图像与不记名标题异步

javascript - Angular 6 媒体查询问题

css - Angular HTML class.otherclass 解释

angular6 - (角度6)路线转换动画不适用于子路线

javascript - Angular 6 路由器过渡动画不起作用(导航栏)