3
我正在創建滑動到下一個或上一個全屏頁面的分頁組件。因爲現在我已經放棄了使用CSS轉換的不同瀏覽器和設備的問題。我有一個工作角動畫解決方案,但新問題是它不能縮放。動態創建角度動畫
import { Component } from '@angular/core';
import { animate, state, style, transition, trigger } from '@angular/animations';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
animations: [
trigger('slideTransition', [
state('firstPage', style({ transform: 'translateX(0)' })),
state('secondPage', style({ transform: 'translateX(-100%)' })),
transition('firstPage=>secondPage', animate('0.6s ease')),
transition('secondPage=>firstPage', animate('0.6s ease'))
])]
})
export class AppComponent {
state = 'firstPage';
nextPage() {
this.state = 'secondPage';
}
previousPage() {
this.state = 'firstShowing';
}
}
問題是,正如你看到的,當我有例如9頁。我不想定義9個狀態和18個轉換。我怎樣才能做到可重用的狀態或根據頁面數量生成狀態和轉換運行時間?有任何想法嗎?
模板會是這個樣子
<div class="container">
<div [@slideTransition]="state" class="page">
<h1>Page 1</h1>
<div class="clicker" (click)="nextPage()">clickity</div>
</div>
<div [@slideTransition]="state" class="page">
<h1>Page 2</h1>
<div class="clicker" (click)="previousPage()">clackity</div>
</div>
</div>