[Angular/Ionic]ionic3中ion-slides切换页面返回后自动轮播

开发需求,需要定制ion-slides,关于ion-slides滚动时或滑动时,样式的话,通过修改ion-slides自身的css样式能达到基本的效果,比如下图,在显示的时候图片是放大,在切换的过程中是缩小的


ion-slides.gif

下面简单讲一下如何开发 ion-slides
首先 引入ion-slides

<ion-slides pager="true" effect="slide" autoplay="5000" loop=true #topSlide (click)="onClickSlides()">
    <ion-slide *ngFor="let item of slidesItems">
      <img src="{{item.img}}" class="slide-image">
    </ion-slide>
  </ion-slides>

获取 ion-slides对象:

  @ViewChild("topSlide") topSliders: Slides;

初始化ion-slides中slidesItems的数据,无论是网络请求还是本地,在ionViewDidLoad()中初始化

  initSlides() {
    this.slidesItems = [
      { img: "assets/imgs/pic01.png" },
      { img: "assets/imgs/pic02.png" },
      { img: "assets/imgs/pic03.png" },
      { img: "assets/imgs/pic04.png" },
      { img: "assets/imgs/pic05.png" }
    ];
    if (this.topSliders) {
    //防止轮播图停止
      this.topSliders.autoplayDisableOnInteraction = false;
    }
  }

目前基本完成,但是很多情况下,比如下面的tab切换或者子页面回到主页面,ion-slides又停止了,我摸索出结果,tab切换和子页面回主页面,走的ionic的页面生命周期不一样,所以在离开的时候停止play,在对应的生命周期恢复的时候,开始play

  // 当进入页面时触发
  ionViewDidEnter() {
    console.log("ionViewDidEnter HomePage");
    if (this.topSliders) {
      this.topSliders.startAutoplay();
    }
  }

  ionViewWillEnter() {
    console.log("ionViewWillEnter HomePage");
    this.topSliders.startAutoplay();
  }

  ionViewCanLeave() {
    if (this.topSliders) {
      this.topSliders.stopAutoplay();
    }
  }

  ionViewWillLeave() {
    console.log("ionViewWillLeave HomePage");
    if (this.topSliders) {
      this.topSliders.stopAutoplay();
    }
  }

基本能解决,切换页面ion-slides不播放的问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容