gpt4 book ai didi

css - Angular - 列表元素的交错动画

转载 作者:太空狗 更新时间:2023-10-29 18:30:41 25 4
gpt4 key购买 nike

我有一个这样定义的转换:

transition('show-content => hide-content', [
query('.project-view-item', [
style({
opacity: 1,
transform: 'translateX(0px)'
}),
stagger('0.3s', [
animate(
'0.2s',
keyframes([
style({
opacity: 0,
transform: 'translateX(-40px)',
offset: 1
})
])
)
])
])
])

一切都按预期进行。这些元素向左移动并淡出。问题是,在所有元素都隐藏之后,样式会重置,并且它们会立即再次可见。就像我需要拥有名为 animation-fill-mode: forwards 的 css3 属性。

我怎样才能在 Angular 上做到这一点?如何保留动画的最后状态?

Plnkr https://plnkr.co/edit/te0tJ76GkhkaRxF2LI2B

最佳答案

Animation start 和 animation done 在这里会有帮助:

HTML

    <div class="project-view" (@content.start)="start($event)" 
(@content.done)="done($event)" [@content]="isShowContent ? 'show-content': 'hide-content'">
<div class="myClass">
<div class="project-view-item">Hello</div>
<div class="project-view-item">Hi</div>
<div class="project-view-item">Hello</div>
<div class="project-view-item">Hi</div>
<div class="project-view-item">Hello</div>
<div class="project-view-item">Hi</div>
<div class="project-view-item">Hello</div>
<div class="project-view-item">Hi</div>
</div>
</div>

typescript :

  hideContent(callback?) {
console.log("HIDE CONTENT CALLED");
this.isShowContent = false;
this.callback = callback;
}

showContent(callback?) {
console.log("SHOW CONTENT CALLED");
this.isShowContent = true;
this.callback = callback;
}

done(event) {
if (this.isShowContent) {
document.querySelector('.myClass').setAttribute('style',
"opacity:1;transform: 'translateX(0)')");
}
else {
document.querySelector('.myClass').setAttribute('style',
"opacity:0;transform: 'translateX(-40px)')");
}

}

start(event) {
document.querySelector('.myClass').setAttribute('style',
"opacity:1; transform: 'translateX(-40px)')");
}

Demo

关于css - Angular - 列表元素的交错动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45995867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com