2017-08-02 2 views
1
trigger('expandCollapse', [ 
      state('open', style({ 
       'height': '*' 
      })), 
      state('close', style({ 
       'height': '0px' 
      })), 
      transition('open <=> close', animate(1000)) 
     ]) 

mit diesem Code zu haben Zusammenbruch zu animieren zu erweitern, die erweitern Zusammenbruch funktioniert gut, aber es gibt keine Animation auf Höhe Framework Winkel Animation 4.3.1Animation auf Winkel 4 scheint nicht Übergangseffekt

https://plnkr.co/edit/tY4z1QPvdKMeU6M82cTF?p=preview

erstellt eine kleine Demo für den gleichen

Antwort

2

Das Problem, dass NoopAnimationsModule ist. Das funktioniert:

//our root app component 
import {Component, NgModule, VERSION} from '@angular/core' 
import {BrowserModule} from '@angular/platform-browser' 
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; 
import { trigger, state, style, transition, animate } from '@angular/animations'; 
@Component({ 
    selector: 'my-app', 
    template: ` 
    <div> 
    <button (click) ="openReportsFilter()">Open Close</button> 
     <h2 [@expandCollapse] = 'openCloseAnim'>Hello {{name}}</h2> 
    </div> 
    `, 
    animations: [ 
     trigger('expandCollapse', [ 
      state('open', style({ 
       'height': '*' 
      })), 
      state('close', style({ 
       'height': '0px' 
      })), 
      transition('open <=> close', animate(1000)) 
     ]) 
    ] 
}) 
export class App { 
    name:string; 
    constructor() { 
    this.name = `Angular! v${VERSION.full}` 
    this.openCloseAnim = 'open'; 
    } 
    openReportsFilter(): void { 
     this.openCloseAnim = (this.openCloseAnim == 'open') ? 'close' : 'open'; 
    } 
} 

@NgModule({ 
    imports: [ BrowserModule,BrowserAnimationsModule ], 
    declarations: [ App ], 
    bootstrap: [ App ] 
}) 
export class AppModule { 


} 
1

Ich habe Ihren Code ein wenig geändert. Sie können die Demo hier ansehen: https://plnkr.co/edit/S7YdfUZN2t0fey9pgo6x?p=preview

//our root app component 
import {Component, NgModule, VERSION} from '@angular/core' 
import {BrowserModule} from '@angular/platform-browser' 
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; 
import { trigger, state, style, transition, animate } from '@angular/animations'; 

@Component({ 
    selector: 'my-app', 
    template: ` 
    <div> 
    <button (click) ="openReportsFilter()">Open Close</button> 
     <h2 *ngIf="openCloseAnim" [@expandCollapse] = 'openCloseAnim'>Hello {{name}}</h2> 
    </div> 
    `, 
    animations: [ 
     trigger('expandCollapse', [ 
      state('expandCollapseState', style({height: '*'})), 
     transition('* => void', [style({height: '*'}), animate(1000, style({height: "0"})) ]), 
     transition('void => *', [style({height: '0'}), animate(1000, style({height: "*"})) ]) 
    ] 
}) 
export class App { 
    name:string; 
    openCloseAnim: boolean = true; 
    constructor() { 
    this.name = `Angular! v${VERSION.full}` 
    } 
    openReportsFilter(): void { 
    console.log('clicked'); 
    this.openCloseAnim = !this.openCloseAnim; 
    console.log(this.openCloseAnim); 
     //this.openCloseAnim = (this.openCloseAnim == true) ? false : true; 
    } 
} 

@NgModule({ 
    imports: [ BrowserModule,BrowserAnimationsModule ], 
    declarations: [ App ], 
    bootstrap: [ App ] 
}) 
export class AppModule { 


} 
+0

obwohl diese funktioniert aber es entfernt und fügt Elemente, die ich will nicht zu tun –