の話:
<div style="position: relative;">
<router-outlet></router-outlet>
</div>
相対そして、あなたのルート要素は、ディスプレイを持っていること角度バージョン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)'
})
)
])
]);
その後、あなたのコンポーネントでは、コンポーネントのレイアウトCSSプロパティを指定するために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
}
各ルーティングコンポーネントにこれを追加するには面倒であることができます。マニュアルでは、次のことを提案しています。
個々のコンポーネントにルートアニメーションを適用するのは簡単なデモでは機能しますが、実際のアプリではルートパスに基づいてルートをアニメーションする方がよいでしょう。
マティアスNiemeläからこの記事ではhttps://www.yearofmoo.com/2017/06/new-wave-of-animation-features.html#routable-animations
はあなたに、このための解決策を見つけることができました助けることができますか? –
他の画面が表示されているときには絶対/固定を指定する必要があります。あなたは同じコーストでお互いをカバーする必要がありますが。私の場合は、レイアウトを破ることなく絶対に配置されたルートを許可するために、私のWebアプリケーションのCSSを書き直しました。 –
今日も、私はこれに苦労しています。私たちが 'position:fixed'または' position:absolute'を追加しなければならないという事実は、本当にダムであり、私にとっては全くスマートではないようです。私は本当にAngularチームがそれより優れていることを願っています。別の方法が必要です。私のコメントは全く助けにはならない、ごめんなさい。誰かがそれをする前に何かを見つけてここに投稿しようとします。 – lkartono