目的:あるページから別のページにクリックしたときに素敵な移行効果を追加したい
私はオンラインを含む多くのソリューションを試しました:
共通点の1つは、それらすべてにposition: absolute
またはposition: fixed
のようなスタイルが追加されているため、既存のアプリのレイアウトが壊れていることです。
Angular 1を使用する場合、position: absolute
を<div ui-view><div>
に追加する必要はありません。
Angular 2または4で可能ですか?
退出するアニメーションのみに絶対配置を追加できます。
transition(':enter', [
style({transform: 'translateX(100%)'}),
animate('0.3s ease-in-out', style({transform: 'translateX(0%)'}))
]),
transition(':leave', [
style({transform: 'translateX(0%)', position: 'absolute', left: 0, right: 0, top: 0}),
animate('0.3s ease-in-out', style({transform: 'translateX(-100%)'}))
])
したがって、退出ルートのみが絶対的に配置され、進入ルートは静的に配置されます。
機能しない場合は、ルーターコンセントが位置によってラップされていることを確認してください。
<div style="position: relative;">
<router-outlet></router-outlet>
</div>
そしてあなたのルートコンポーネントが表示していること:ブロック
@Component({
styles:[':Host {display: block;}']
Angularバージョン4.3.xについて話します。router
documentation を読んで、ルート間にアニメーションを追加する方法を説明します。遅延の履歴書は次のとおりですもの(自分を含む)。
@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
デコレーターを使用して、コンポーネントのレイアウトのcssプロパティを指定します(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
}
ルーティングされた各コンポーネントにこれを追加するのは面倒な場合があります。ドキュメントが示唆し、私は引用します:
個々のコンポーネントにルートアニメーションを適用することは簡単なデモで機能しますが、実際のアプリでは、ルートパスに基づいてルートをアニメーション化する方が適切です。
MatiasNiemeläのこの記事は役に立ちます https://www.yearofmoo.com/2017/06/new-wave-of-animation-features.html#routable-animations