Ответ 1
Говоря о Angular версии 4.3.x. Читая документацию router
, они объясняют, как добавить анимацию между маршрутами. Вот резюме для ленивых (включая меня).
Вы хотите импортировать библиотеки анимации из @angular/core
(а не @angular/animations
):
import {
AnimationEntryMetadata,
animate,
state,
style,
trigger
} from '@angular/core';
export const fadeInAnimation: AnimationEntryMetadata = trigger('fadeInAnimation', [
transition(':enter', [
style({
opacity: 0,
transform: 'translateY(20px)'
}),
animate(
'.3s',
style({
opacity: 1,
transform: 'translateY(0)'
})
)
])
]);
Затем в вашем компоненте используйте декоратор HostBinding
, чтобы указать свойства компоновки компоновки компоновки (вам не нужно использовать позицию fixed
или absolute
):
import { Component, OnInit, HostBinding } from '@angular/core';
import { fadeInAnimation } from './../animations/fadein';
@Component({
animations: [fadeInAnimation],
selector: 'app-posts',
templateUrl: './posts.component.html'
})
export class DemandsComponent implements OnInit {
@HostBinding('@fadeInAnimation') fadeInAnimation = true;
@HostBinding('style.display') display = 'block';
@HostBinding('style.position') position = 'relative';
// Rest of the code
}
Добавление этого к каждому маршрутизируемому компоненту может быть громоздким. Документация предлагает, и я цитирую:
Применение анимации маршрута к отдельным компонентам работает для простой демонстрации, но в реальном приложении лучше анимировать маршруты, основанные на маршрутах маршрута.
Эта статья Матиаса Нимеля может помочь https://www.yearofmoo.com/2017/06/new-wave-of-animation-features.html#routable-animations