Угловая анимация: анимация родительских и дочерних элементов - PullRequest
0 голосов
/ 27 июня 2018

Я создал элемент (div.parent) с угловой анимацией, который отлично работал. Когда я добавляю к нему дочерний элемент и одновременно пытаюсь анимировать дочерний, одна из анимаций не запускается (просто привязывается к новому состоянию).

Stackblitz: https://stackblitz.com/edit/angular-2tbwu8

Markup:

<div [@theParentAnimation]="state" class="parent">
  <div [@theChildAnimation]="state" class="child">
  </div>
</div>

Анимация:

trigger( 'theParentAnimation', [
  state( 'down', style( {
    transform: 'translateY( 100% ) translateZ( 0 )',
  } ) ),
  transition( '* <=> *', [
    group( [
      query( ':self', [
        animate( '0.9s cubic-bezier(0.55, 0.31, 0.15, 0.93)' ),
      ] ),
      query( '@theChildAnimation', animateChild() ),
    ] ),
  ] ),
] ),
trigger( 'theChildAnimation', [
  state( 'down', style( {
    transform: 'translateY( 100% ) translateZ( 0 )',
  } ) ),
  transition( '* <=> *', [
    animate( '0.9s cubic-bezier(0.55, 0.31, 0.15, 0.93)' ),
  ] ),
] ),

1 Ответ

0 голосов
/ 28 июня 2018

Похоже, вам не нужно использовать query( ':self', ..., поскольку вы используете group(), анимации будут выполняться параллельно. Вы можете изменить переход в родительской анимации:

transition('* <=> *', [
  group([
    query('@theChildAnimation', animateChild()),
    animate('0.9s cubic-bezier(0.55, 0.31, 0.15, 0.93)'),
  ]),
]),

Обновлен StackBlitz

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...