Nazehs
Nazehs

Reputation: 558

autoplay slider for ionic 4

Hi have been trying to achieve auto slide for Ionic 4 but it seems like is not working...below is the code

page.ts
=========
 @ViewChild(IonSlides) slider: IonSlides;
  options: {
    autoplay: true
  }
HTML
========
     <ion-slides #IonSlides pager="true" [options]="options" (ionSlidesDidLoad)="stopSlideAutoplay()">
          <ion-slide>
             <ion-img src="assets/whitebg.svg"></ion-img>
            </ion-slide>
      
          <ion-slide>
              <ion-img src="assets/whitebg.svg"></ion-img>
          </ion-slide>
          </ion-slides>

Upvotes: 2

Views: 4780

Answers (3)

keshav godani
keshav godani

Reputation: 313

page.ts file:

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

export class page implements OnInit {
    @ViewChild('mySlider') slider: IonSlides;
    sliderOpts = {
        autoplay: true,
        speed: 1000,
        zoom: {
          maxRatio: 5
        }
      };
    }

page.html file:

 <ion-slides #mySlider pager="true" 
         [options]="sliderOpts" >
        <ion-slide></ion-slide>
   </ion-slides>

Upvotes: 8

Chanaka Weerasinghe
Chanaka Weerasinghe

Reputation: 5742

in your .ts file

import { Component, OnInit, ViewChild, ElementRef } from "@angular/core";

 @ViewChild("slider", { read: ElementRef }) slider: ElementRef;


  sliderOpts = {
    autoplay: true,
    zoom: {
      maxRatio: 5
    }
  };

in html file

<ion-slides
    (ionSlideDidChange)="slideChanged()"
    #slider
    [options]="sliderOpts"
  >
    <ion-slide>
      <img class="images" src="assets/intro/welcomes.png" />
      <p class="pt-page-rotatePullLeft pt-page-delay500 heading">
        {{ "onboard.welcome" | translate }}
      </p>
      <p class="subtitles">{{ "onboard.welcomeSub" | translate }}</p>
    </ion-slide>
    <ion-slide>
      <img class="images" src="assets/intro/payments.png" />
      <p class="heading">{{ "onboard.pay" | translate }}</p>
      <p class="subtitles">{{ "onboard.paySub" | translate }} <br /></p>
    </ion-slide>
    <ion-slide>
      <img class="images" src="assets/intro/send.png" />
      <p class="heading">{{ "onboard.send&received" | translate }}</p>
      <p class="subtitles">
        {{ "onboard.send&receivedSub" | translate }} <br />
        {{ "onboard.send&receivedSub2" | translate }}
      </p>
    </ion-slide>

    <ion-slide>
      <img class="images" src="assets/intro/wallets.png" />
      <p class="heading">{{ "onboard.wallet" | translate }}</p>
      <p class="subtitles">{{ "onboard.walletSub" | translate }}</p>
    </ion-slide>
  </ion-slides>

Upvotes: 0

Sajeetharan
Sajeetharan

Reputation: 222552

Try this code by setting autoplay: true,

<ion-slides [options]="sliderOpts" #slider>
     <ion-slide>
             <ion-img src="assets/whitebg.svg"></ion-img>
            </ion-slide>

          <ion-slide>
              <ion-img src="assets/whitebg.svg"></ion-img>
          </ion-slide>
</ion-slides>

and in TS

@ViewChild('slider', { read: ElementRef })slider: ElementRef;
  img: any;

  sliderOpts = {
    autoplay: true,
    zoom: {
      maxRatio: 5
    }
  };

Upvotes: 2

Related Questions