如何在SAP/spartacus中自动播放轮播?
How can auto play carousel in SAP/spartacus?
我正在使用 SAP/spartacus 的轮播组件。我的要求是轮播应该自动播放。
请帮我解决一下。
正如我在源代码中看到的那样,它没有在 Spartacus 中实现 OOTB,但您可以轻松地将此功能添加到您的项目中。
请在斯巴达克斯的基础上创建您自己的CarouselComponent
。
1 class 也应该实现 OnDestroy
接口
2 添加新的依赖项protected ref: ChangeDetectorRef
3 新增属性subscription = new Subscription();
4 填充方法ngOnInit
按此:
super.ngOnInit();
this.subscription = this.size$
.pipe(
take(1),
switchMap((size) =>
interval(5000).pipe(
tap(() => {
this.activeSlide =
this.activeSlide > this.items.length - size - 1
? 0
: this.activeSlide + size;
this.ref.markForCheck();
})
)
)
)
.subscribe();
5 记得大约 ngOnDestroy() { this.subscription.unsubscribe(); }
然后准备您自己的 BannerCarouselComponent
版本(更改唯一的模板 - 使用您的新轮播组件代替 cx-carousel
)
最后设置:
cmsComponents: {
RotatingImagesComponent: {
component: YourBannerCarouselComponent,
},
},
我正在使用 SAP/spartacus 的轮播组件。我的要求是轮播应该自动播放。 请帮我解决一下。
正如我在源代码中看到的那样,它没有在 Spartacus 中实现 OOTB,但您可以轻松地将此功能添加到您的项目中。
请在斯巴达克斯的基础上创建您自己的CarouselComponent
。
1 class 也应该实现 OnDestroy
接口
2 添加新的依赖项protected ref: ChangeDetectorRef
3 新增属性subscription = new Subscription();
4 填充方法ngOnInit
按此:
super.ngOnInit();
this.subscription = this.size$
.pipe(
take(1),
switchMap((size) =>
interval(5000).pipe(
tap(() => {
this.activeSlide =
this.activeSlide > this.items.length - size - 1
? 0
: this.activeSlide + size;
this.ref.markForCheck();
})
)
)
)
.subscribe();
5 记得大约 ngOnDestroy() { this.subscription.unsubscribe(); }
然后准备您自己的 BannerCarouselComponent
版本(更改唯一的模板 - 使用您的新轮播组件代替 cx-carousel
)
最后设置:
cmsComponents: {
RotatingImagesComponent: {
component: YourBannerCarouselComponent,
},
},