Angular2 анимация, показ метки за количество секунд X
Как я могу использовать анимацию angular2, чтобы показать метку за количество секунд X? В идеале я хотел бы показать saved!
рядом с моим полем ввода появится надпись, которая будет появляться и оставаться в течение 2 секунд, а затем исчезать. Я могу легко заставить анимацию исчезать, но как я могу заставить ее исчезать?
Вот моя анимация:
animations: [
trigger('hasSaved', [
state('inactive', style({
opacity: 0
})),
state('active', style({
opacity: 1
})),
transition('inactive => active', [
animate(500)
])
])
]
1 ответ
Решение
ДЕМО: 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)
}
}