2016-08-23 8 views
4

1つのコンポーネントで複数のアニメーショントリガーを定義したいと思います。これは可能ですか?angular2の複数のアニメーショントリガーコンポーネント

たとえば、シーンを入力するためのものとホバーのためのものがあります。 このケースでは、2つのコンポーネント(親子)を定義する必要がありますか?

<div class="item" [@slideIn]="enterState"> 

    <div class="info"> 
     SOME INFO 
    </div> 
    <div class="info-on-hover" [@fadeIn]="hoverState"> 
     SOME INFO 
    </div> 
</div> 

ああ、誰かがタグ "angular2アニメーション" を作成する必要があり

よろしく

item.template.html

item.compoennt.ts

// removed the import and class part for better readability 

@Component({ 
    selector: 'item', 
    templateUrl: './item.template.html', 
    styleUrls: ['./item.style.scss'], 
    animations: [ 
    // page load animation 
    trigger('slideIn', [ 
     state('in', style({ 
      opacity: 1, 
      transform: 'translateY(0)' 
     })), 
     transition('void => *', [ 
      style({ 
       transform: 'translateY(100%)', 
       opacity: 0 
      }), 
      animate('0.5s 100ms ease-in') 
     ]) 
    ]), 


    // <--- this fails 
    // hover animation 
    trigger('fadeIn', [ 
     state('over', style({ 
      opacity: 1 
     })), 
     transition('void => *', [ 
      style({ 
       opacity: 0 
      }), 
      animate('0.5s 100ms ease-in') 
    ]) 
    ], 
}) 

+0

plunkerあなたが提供することができれば? – micronyks

+0

ここに私が作成したものhttp://plnkr.co/edit/8beFC9Y5C2jpD6cV52I0(それを試して...) – kkern

答えて

4

複数のアニメーショントリガーを1つのコンポーネントで定義したいと考えています。これは可能ですか?

はい、必要な数だけトリガーを設定できます。

1つのトリガ内に複数の状態を2つではなく複数持つこともできます。たとえば、状態間に異なる遷移を持つ「入力」状態と「ホバー」状態を持つことができます。例えば

state('in', style({opacity: 1, 
      transform: 'translateY(0)' 
     })), 
state('hover', style({background: 'red'}), 
transition('* <=> hover', animate('200ms ease-in')) 
+0

こんにちは、ええ、私は2つのトリガを定義する場合、それはコンパイルされません。それとも私だけですか? – kkern

+0

NVM。私はいくつかの終了タグを忘れていたので、複数のトリガーは不可能だと思った。どうもありがとうございました! – kkern

+0

うまくいけばうれしいです。 –

関連する問題