C. Sysmans
C. Sysmans

Reputation: 453

Ionic 2 scroll event

I have an ion-scroll component. I'm trying to execute some code during scrolling. In Ionic 1 this was possible using the on-scroll attribute and passing a function.

The documentation is also missing. Is there a built in way in Ionic 2 to detect scrolling, or do I have to fall back on adding my own event handlers using jQuery or window scroll event?

Upvotes: 3

Views: 5603

Answers (3)

Kamlesh Kumar
Kamlesh Kumar

Reputation: 1680

I found this solution from here: https://forum.ionicframework.com/t/ionic-2-rc4-addscrolllistener/73145/16?u=kamleshappster

this.content.ionScroll.subscribe(($event) => {
 this.scrollAmount = $event.scrollTop;
});

Upvotes: 0

C. Sysmans
C. Sysmans

Reputation: 453

I found a solution here: “On-scroll” not working in

Using the "addScrollEventListener" inside "ngAfterViewChecked".

Upvotes: 2

m.spyratos
m.spyratos

Reputation: 4238

You can use the addScrollEventListener method of the Scroll component, like so:

this.scroll.addScrollEventListener((event) => {
    console.log(event);
});

Your HTML:

<ion-header>
    <ion-navbar>
        <ion-title>Title</ion-title>
    </ion-navbar>
</ion-header>

<ion-content class="no-scroll">
    <ion-scroll></ion-scroll>
</ion-content>

Your Typescript:

import {Component, ViewChild} from '@angular/core';
import {Scroll} from 'ionic-angular';

@Component({
    selector: 'page-home',
    templateUrl: 'home.html'
})

export class HomePage {
    @ViewChild(Scroll) scroll: Scroll;

    constructor() {}

    ngAfterViewInit() {
        this.scroll.addScrollEventListener(this.onScroll);
    }

    onScroll(event) {
        console.log(event);
    }
}

Upvotes: 2

Related Questions