2017-01-11 5 views
1

角2では、絶対配置された要素の一部を(データが取り込まれるとすぐに)特定のランタイム値に適用したいと考えています。それ、どうやったら出来るの ?コードの状態設定を変更できますか? (またはいくつかのコールバックと?)In Angular 2.特定のランタイム値にどのようにアニメートしますか?

@Component({ 
    animations: [ 
     trigger('blahState', [ 
     state ('closed', style({ top: '0px'})), 
     state ('open', style({ top: ??? (<= must be the position of some dom element) })), 
     transition('closed => open', animate('500ms ease-in'))]) 
     ] 
}) 
+0

「いくつかのdom要素の位置でなければならない」とはどういう意味ですか? – micronyks

+0

ページ内のHTML要素のy位置。例えば、offsetTop。その位置はデータによって変化します。..

***dynamic content***
そして、私は#myElementについて、その後#myElement –

+0

の位置に何をアニメーション化する必要がありますか? – micronyks

答えて

0

あなたのコンポーネントクラスの '状態' に変更することができます。たとえば

を:

コンポーネントテンプレート:

<div [@blahState]="my_animation_state"></div> 

とコンポーネントクラスを:

export MyComponent{ 
    public my_animation_state:string = 'open'; 
    toggleState() { 
     this.my_animation_state == 'open' ? 'closed' : 'open'; 
    } 
    } 

とあなたが

transition('closed => open', ... 

「オープン」最後に「閉じた」から状態を変更したとき、あなたはときに、アニメーションの終了イベントを呼び出すか、開始することができ、遷移を取得します:

<div [@blahState]="my_animation_state" (@blahState.done)="animationDone()" (@blahState.start)="animationStart()></div> 

とコンポーネントクラス:

animationStart() { 
// your code 
} 

animationDone(){ 
// your code 
} 

Good Luck!

+1

これは本当に私の質問ではありません。しかし、おそらくアニメーション開始で行うことができます。その特定の時刻にアニメーションの値を変更することはできますか? –

+0

作成後にコンポーネントアニメーションを変更することはできません。 「セレクタ」を変更することは不可能です。 私が何らかの方法でお手伝いしたのであれば、あなたにはフィードバックをくれてうれしいです:) – YairTawil

関連する問題