在这里插入图片描述

html

<ion-slides pager="true" [options]="slidersOpts" class="top-slides" (ionSlideDidChange)="slideDidChange($event)" #slides>
    <ion-slide *ngFor="let banner of banners">
        <!--轮播图尺寸是16:9-->
        <img [src]=banner?.advertImgUrl alt=""/>
    </ion-slide>
</ion-slides>

ts

import {ViewChild} from '@angular/core';
import {IonSlides} from '@ionic/angular';

@ViewChild('slides') slider: IonSlides;
/**
 *  头部轮播图
 */
slidersOpts = {
    slidesPerView: 1,
    initialSlide: 0,
    speed: 400,
    loop: true,
    zoom: false,
    autoplay: {
        delay: 5000,
        disableOnInteraction: false
    },
};

slideDidChange(event) {
    // first and last slides are duplicate slides
    this.slider.getActiveIndex()
        .then(async (activeIndex: number) => {
            const slideCount = await this.slider.length();
            if (activeIndex === slideCount - 1) {
                this.slider.slideTo(1, 0);
            }
            if (activeIndex === 0) {
                this.slider.slideTo(slideCount - 2, 0);
            }
        });
}
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐