【问题标题】:Angular 8 Carousel Slide Animations not workingAngular 8 Carousel幻灯片动画不起作用
【发布时间】:2019-11-15 11:52:19
【问题描述】:

我需要从右向左滑动三张图片,下一张图片应该过渡。

我拥有STACKBLITZ中所需的所有代码

HTML:

<ngb-carousel *ngIf="images" [showNavigationArrows]="showNavigationArrows" [showNavigationIndicators]="showNavigationIndicators">
    <ng-template ngbSlide *ngFor="let image of images">
      <div class="picsum-img-wrapper">
        <img [src]="image" alt="Random slide">
      </div>
      <div class="carousel-caption">
        <button>Touch to start</button>
      </div>
    </ng-template>
  </ngb-carousel>

动画图像所需的角度动画:

animations: [
    trigger('slide', [
      state('previousLeft', style({
        display: 'none',
        transform: 'translateX(-100%)'
      })),
      state('previousRight', style({
        display: 'none',
        transform: 'translateX(100%)'
      })),
      transition('hidden => activeLeft, previousRight => activeLeft', [
        style({
          display: 'block',
          transform: 'translateX(100%)'
        }),
        animate('0.6s')
      ]),
      transition('hidden => activeRight, previousLeft => activeRight', [
        style({
          display: 'block',
          transform: 'translateX(-100%)'
        }),
        animate('0.6s')
      ]),
      transition('activeLeft => previousLeft, activeRight => previousRight,' +
                 'activeRight => previousLeft, activeLeft => previousRight,' +
                 'active => previousLeft, active => previousRight', [
        style({
          display: 'block'
        }),
        animate('0.6s')
      ])
    ])
  ],

我希望它表现得像这样: Another Stackblitz

为了实现该功能,任何帮助都会很棒。

【问题讨论】:

  • 你可以在哪里工作?
  • @kontenurban 还没有,这周我会再试一次看看。
  • 期待!

标签: html css angular typescript


【解决方案1】:

用 setTimeout() 来做这个;

ngOnInit() {
  this.getData();
} 

private getData() : void {
  
  /*get Image*/
  let subscribe = this.imageService.getImage().subscribe(res => {
      
      this.imageList = res;
       
      setTimeout(() => {
        
        this.setEvent();
      }, 300)
        
    
  }, error => {
    
    console.log('error', error);
  
  }) 
  

}


private setEvent() : void {

  /*something slide event ex) swiper event...*/


}

【讨论】:

  • 嘿@realTak 你能不能让它在上面提供的堆栈闪电战中工作。
  • @Bob sry bob 我不认为 ngb-carousel 不像另一个幻灯片库那样提供移动事件。我发现了一些 CSS 技巧,但我想你已经找到了这些技巧。你为什么不使用另一个库
  • 是的,感谢您的尝试和帮助。我一定会环顾四周,如果我成功了,我会把它贴在这里。干杯!
猜你喜欢
  • 2019-01-17
  • 1970-01-01
  • 2015-07-17
  • 1970-01-01
  • 1970-01-01
  • 2021-04-15
  • 1970-01-01
  • 2015-11-21
  • 1970-01-01
相关资源
最近更新 更多