Angular 中提供了 query 方法查找元素并为元素创建动画

  1. import { slide } from "./animations"
  2. animations: [
  3. slide,
  4. trigger("todoAnimations", [
  5. transition(":enter", [
  6. query("h2", [
  7. style({ transform: "translateY(-30px)" }),
  8. animate(300)
  9. ]),
  10. // 查询子级动画 使其执行
  11. query("@slide", animateChild())
  12. ])
  13. ])
  14. ]
  1. <div class="container" @todoAnimations>
  2. <h2>Todos</h2>
  3. <ul class="list-group">
  4. <li
  5. @slide
  6. (click)="removeItem(i)"
  7. *ngFor="let item of todos; let i = index"
  8. class="list-group-item"
  9. >
  10. {{ item }}
  11. </li>
  12. </ul>
  13. </div>
  • 默认情况下,父级动画和子级动画按照顺序执行,先执行父级动画,再执行子级动画,可以使用 group 方法让其并行
    1. trigger("todoAnimations", [
    2. transition(":enter", [
    3. group([
    4. query("h2", [
    5. style({ transform: "translateY(-30px)" }),
    6. animate(300)
    7. ]),
    8. query("@slide", animateChild())
    9. ])
    10. ])
    11. ])