我爱编程

用angular animation做循环动画

2018-05-09  本文已影响0人  自然hoten

笔者最近在生产中,遇到了需要开发自动运行并循环播放的动画的需求。虽然用纯CSS也能实现该效果,但还是想使用angular的animation来实现。

以下提供一些基本的思路和代码:

<img src="/assets/your_pic.png" [@anm]="state" (@anm.done)="Done($event)" class="animatedElement"/>
img.animatedElement {
        display: block;
        width: 15vh;
        position: relative;
        left: -25vw;
        top: 0;
}
const anm = trigger('anm', [
  state('void', style({ left: '-25vw' })),
  state('start', style({ left: '-25vw' })),
  state('end', style({ left: '100%' })),
  transition('start => end', [
    animate(14500)
  ])
]);
/**
  * @desc 结束回调循环
  * @param ev
  */
  Done(ev) {
    switch (ev.toState) {
      case 'start':
        this.state = 'end';
        break;
      case 'end':
        this.state = 'start';
        break;
      default:
        break;
    }
  }

结语:

笔者感觉还是比较好实现的,而且相对于原生动画,更能把握各个状态之间的转换。

上一篇 下一篇

猜你喜欢

热点阅读