чередование двух или более угловых анимаций - PullRequest
0 голосов
/ 25 октября 2018

Угловые анимации работают следующим образом:

<div *ngIf="show" [@slideThoughLeft] class="title-text">My title</div>

с:

//a bit of js hiding title and revealing again a second later hence triggering animations 

и:

export const slideThoughLeft = trigger(
  'slideThoughLeft',
  [
    transition(
      ':enter', [
        style({opacity: 0, transform: 'translateX(50%)'}),
        animate('500ms', style({opacity: 1, transform: 'translateX(0)'}))
      ]
    ),
    transition(
      ':leave', [
        style({opacity: 1, transform: 'translateX(0)'}),
        animate('500ms', style({ opacity: 0, transform: 'translateX(-50%)'}))
      ]
    )]
);

и намного более мощные, чем анимации, которые вы могли бысоздавайте через свои собственные js-хуки и css.

Отсюда и их использование.

, но с помощью анимации маршрутизатора мне удалось установить сложный набор правил для моей анимации:

<main class="root routing" [@animRoutes]="getPage(o)">
  <router-outlet #o="outlet"></router-outlet>
</main>

с:

getPage(outlet){return outlet.activatedRouteData['page'] || 'one'}

и:

(я собирался опубликовать алгоритм анимации длиной 300 строк, потом я понял, что это будет препятствовать чтению, поэтому я будуизбавить вас от некоторого псевдокода, который делает потенциал, который вы можете использовать, и который я задействовал, очевиден:)

if route "home" to "contact" then slideUpFast
if route "contact" to "home" then slideDown
if route "home" to "about" then jumpIn
if route "contact" to "about" then slideDownSlow
Ect...

Дело в том, что такого рода свобода допускается с анимацией маршрутизатора, но, насколько я могу судить, имеетне всегда были доступны с регулярными угловыми анимациями.

Я пытался:

<div [@animRoutes]="getPage()" class="title-text">My title</div>

с:

getPage(){return this.store.path}

, предварительно проверив, что мой var this.store.path возвращаеттак же, как outlet.activatedRouteData['page'].

, но это привело к анимеtion не воспроизводится вообще.

, поэтому "взлом" в анимации маршрутизации, где должна быть угловая анимация, не допускается.

, тогда я изучил этот синтаксис:

export const translateInAnimation = trigger(
  'translateInAnimation',
  [
    state('left', style({ transform: 'translateX(0)' })),
    state('right', style({ transform: 'translateX(-100%)' })),
    transition('left <=> right', animate('620ms ease-out'))]
);

это позволяет осуществлять переход между двумя состояниями.

, который мог бы работать, если бы у меня было две страницы, но здесь, где мне нужно анимировать заголовок, скользящий правильно влево или вправо и есть 8 страниц, я не знаю, как это использовать.

также этот синтаксис служит только для сокрытия текущего, чтобы не раскрывать новое, и я не знаю, как бы я представил HTML, чтобы использовать это для моего контекста.

Я хотел бы знать, еслиесть угловой синтаксис, позволяющий мне переключать угловую анимацию на лету.

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