首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表中有延迟的Angular 5动画

列表中有延迟的Angular 5动画
EN

Stack Overflow用户
提问于 2018-01-05 15:31:30
回答 1查看 7.1K关注 0票数 1

我想将旋转动画添加到图像列表中,但我做不到。我可以做一个全局旋转,但我想用延迟来补偿这些动画。触发器list制作了很好的动画,但仅在开始时。当更新组件数据时,该列表也会随之更新。

谢谢。

component.ts

代码语言:javascript
复制
@Component({
  selector: 'app-totem',
  templateUrl: './totem.component.html',
  styleUrls: ['./totem.component.scss'],
  animations: [
    trigger('totem', [
      transition('* => *', [
        query(':self',
          stagger('70ms', [
            style({ transform: 'rotateY(-180deg)' }),
            animate('800ms ease-in-out')
          ])
        )
      ])
    ]),
    trigger('list', [
      transition('* => *', [
        query('.totem',
          stagger('70ms', [
            style({ transform: 'rotateY(-180deg)' }),
            animate('800ms ease-in-out')
          ])
        )
      ])
    ])
  ]
})

Component.html

代码语言:javascript
复制
<div class="totems" #totems [@list]="items.length">
  <div class="totem" *ngFor=" let item of items" @totem>
    <div class="front" [style.background-image]="'url(' + item.front.url + ')'"></div>
    <div class="back" [style.background-image]="'url(' + item.back.url + ')'"></div>
  </div>
</div>
EN

回答 1

Stack Overflow用户

发布于 2018-01-08 23:08:44

你已经很接近了。在创建触发器@totem时,您是正确的

但是你的动画应该是

代码语言:javascript
复制
trigger('totem', [
  transition(':enter', [
    query('*', [
      style({ transform: 'rotateY(-180deg)' }),
      stagger(70, [
        animate('800ms ease-in-out', style('*'))
      ]), { delay: 200 }
    ])
])

YearofMoo New Wave of Animation Features中所示

他们有一个专门介绍ngFor的部分。关键点是:enter是当ngFor呈现时ngFor想要的东西,它做动画,如果你过滤ngFor,它将总是用新的项目进入":enter“状态。(你也可以做一个:离开动画)。

另外,如果你想在你的动画行后面加一个延迟,它的{ delay : 200 }

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48109093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档