使用動畫計時功能和動畫屬性
頁/ main.component.ts
import {Component, ElementRef, ViewChild} from "@angular/core";
import {View} from "ui/core/view";
import {AnimationCurve} from "ui/enums";
@Component({
selector: "main",
template: `
<StackLayout>
<Image #img src="~/assets/images/user-shape.png"></Image>
<Button text="Apply Changes" (tap)="animateImage()"></Button>
</StackLayout>
`,
styleUrls: ["pages/main/main-common.css"],
})
export class MainComponent {
@ViewChild("img") img: ElementRef;
animateImage() {
let img = <View>this.img.nativeElement;
img.animate({
translate: { x: 0, y: 120 },
duration: 2000,
curve: AnimationCurve.easeIn
});
}
}
#snippet 用於其他動畫屬性
你還可以使用 cubicBezier 編寫自己的計時功能。
- 使用 cubicBezier
img.animate({
translate: { x: 0, y: 120 },
duration: 2000,
curve: AnimationCurve.cubicBezier(0.1, 0.2, 0.1, 1)
});
- 動畫屬性
不透明度
img.animate({
opacity: 0,
duration: 2000
});
翻譯
img.animate({
translate: { x: 120, y: 0},
duration: 2000
});
規模
img.animate({
scale: { x: 1.5, y: 1.5},
duration: 2000
});
旋轉
img.animate({
rotate: 270,
duration: 2000
});