malonely 2017-06-23
<ion-header> <ion-navbar> <ion-title>slide-pic-demo</ion-title> </ion-navbar> </ion-header> <ion-content padding class="page-home"> <ion-slides #mySlider (ionSlideDidChange)="slideChanged()"> <ion-slide *ngFor="let i of iterms"> <img src="{{i}}" > </ion-slide> </ion-slides> </ion-content>
ion-slides 标签就是我们的轮播组件, #mySlider组件对象ionSlideDidChange 表示每次轮播的回调事件
import {Component,ViewChild} from '@angular/core'; import {NavController,Slides} from 'ionic-angular'; @Component({ templateUrl: 'slide-pic-demo.html' }) export class SlidePicDemoPage { @ViewChild('mySlider') sliders:Slides; iterms = [ "http://img3.imgtn.bdimg.com/it/u=1373023650,1548952065&fm=26&gp=0.jpg", "http://www.quanjing.com/image/2016index/slt3.jpg", "http://www.quanjing.com/image/2016index/f1.jpg" ]; constructor(public navCtrl: NavController) { } ngOnInit(){//页面加载完成后自己调用 //If true, show the pager. //能够显示下面的page的小点点 this.sliders.pager = true; //If true, continuously loop from the last slide to the first slide. //参照官网这个属性表示轮播图能够循环 this.sliders.loop = true; setInterval(()=>{ //1000:表示速度,true表示能够触发事件 this.sliders.slideNext(1000,true); },2000); } //轮播的时候触发的事件 slideChanged () { let currentIndex = this.sliders.getActiveIndex(); console.log('Current index is', currentIndex); } }
效果如下
轮播图这样是可以正常播放,但是会出现一个问题,当页面跳转到其他页面再回来的时候轮播图就不自动播放了,解决方案如下。
this.sliders.loop = true; // 自定义播放的间隔,取消定时任务 this.sliders.autoplay = 1000; // 自定义播放的速度 this.sliders.speed = 1000; // 进入的时候自动播放 ionViewWillEnter() { this.sliders.startAutoplay(); } // 离开的时候暂停 ionViewWillLeave() { this.sliders.stopAutoplay(); }