如何使用angular2动画显示X秒数的标签?理想情况下,我想在输入框旁边显示一个saved!
标签,该标签会淡入并保持2秒钟,然后淡出。我可以很容易地让动画淡出它,但是我怎么能让它淡出呢?
这是我的动画:
animations: [
trigger('hasSaved', [
state('inactive', style({
opacity: 0
})),
state('active', style({
opacity: 1
})),
transition('inactive => active', [
animate(500)
])
])
]
答案 0 :(得分:2)
DEMO:https://plnkr.co/edit/yfSdg1qoYz3oHzLWfG1U?p=preview
您可以一起使用* ngIf和 setTimeout
来实现它。
我正在使用 keyframes
添加动画。
animations: [
trigger('hasSaved', [
transition('void => *', [
animate(1000, keyframes([
style({opacity: 0, transform: 'translateX(-10%)', offset: 0}),
style({opacity: 1, transform: 'translateX(-40px)', offset: 0.3}),
style({opacity: 1, transform: 'translateX(0)', offset: 1.0})
]))
]),
transition('* => void', [
animate(1000, keyframes([
style({opacity: 1, transform: 'translateX(0)', offset: 0}),
style({opacity: 1, transform: 'translateX(30px)', offset: 0.3}),
style({opacity: 1, transform: 'translateX(20%)', offset: 1.0})
]))
])
])
]
export class App {
showSave:boolean=false;
title = 'app works!';
save(){
this.showSave=!this.showSave;
setTimeout(()=>{
this.showSave=!this.showSave;
},2000)
}
}