저는 Angular2 앱을 사용하고 있으며 라우팅에 애니메이션을 추가하려고합니다. 따라서 페이지를 변경할 때 슬라이드가 발생합니다. 들어오는 애니메이션은 잘 작동하지만 떠나는 애니메이션은 활성화되지 않습니다. 이전 페이지는 새 페이지가로드 된 후에 사라집니다. 누구든지이 문제의 원인을 알고 있습니까? plunkerAngular2 - 애니메이션이 적용되지 않음
anuglar2 docs에 따르면 제 전환이 올바른 것 같습니다.
// transition(':enter', [ ... ]); // void => *
// transition(':leave', [ ... ]); // * => void
애니메이션 파일
export function routerTransition() {
return trigger('routerTransition', [
transition('void => *', [
style({ transform: 'translateX(100%)' }),
animate(1000)
]),
transition('* => void', [
style({ transform: 'translateX(-100%)' }),
animate(1000)
])
])
}
child_1.component.ts
import { Component } from '@angular/core';
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'
import { Router } from '@angular/router';
import { Observable } from 'rxjs/Rx';
import { routerTransition } from '../../directives/router.animation';
@Component({
selector: 'about',
template: require('./about.component.html'),
styles: [require('./about.component.css')],
animations: [routerTransition()],
host: { '[@routerTransition]': '' }
})
child_2.component.ts
import { Component } from '@angular/core';
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'
import { Router } from '@angular/router';
import { Observable } from 'rxjs/Rx';
import { routerTransition } from '../../directives/router.animation';
@Component({
selector: 'home-info',
template: require('./home.component.html'),
styles: [require('./home.component.css')],
animations: [routerTransition()],
host: { '[@routerTransition]': '' }
})
이 방법은 효과가 있지만 100 % 너비로 인해 페이지가 왜곡됩니다. 너비를 제거하면 이전과 같이 애니메이션이 작동합니다. 이것에 대한 해결책은 무엇입니까? – John
또한 페이지를 아래로 스크롤 할 수 없습니다. – John
페이지 너비를 조정할 수 있습니까? –