Est-il possible de détecter quand la fenêtre défile?
J'ai essayé d'ajouter HostListener:
this.renderer.listen(
'window',
'scroll',
(evt) => {
console.log('scroll');
}
);
Et j'ai essayé d'utiliser Renderer2:
@HostListener("window:scroll", [])
onScroll() {
console.log('scroll');
}
Aucun des deux ne fonctionne.
3 Réponses :
La syntaxe est différente dans Ionic2 / 3. Voici comment cela devrait être:
constructor(){}
scrolling(event) {
// your content here for scrolling
}
scrollComplete(event) {
// your content here of scroll is finished
}
}
puis dans votre fichier ts
<ion-content (ionScroll)="scrolling($event)" (ionScrollEnd)="scrollComplete($event)"> <ion-list> ... </ion-list> </ion-content>
C'est la solution de contournement que j'utilise mais le problème est que je développe une bibliothèque npm qui n'a pas accès directement à ion-content . De préférence, je peux détecter le défilement depuis le composant sans avoir à passer un Input ()
vous pouvez détecter le défilement avec le code ci-dessous, tout comme votre premier extrait de code ..
@HostListener('window:scroll')
onWindowScroll():void {
let isScrolled = window.scrollY > this.heightToCompare;
if (isScrolled !== false) {
// do what you want
}
}
J'ai mentionné dans ma question que cela ne fonctionne pas. J'ai ajouté un journal de point d'arrêt et de console et cela ne déclenche pas. C'est peut-être parce que Ionic.
@jrquick cela ne fonctionne pas parce que vous ne devriez pas définir overflow-x: hidden dans le corps ou ne pas définir la hauteur: 100%. ionique pour une raison quelconque est la hauteur de réglage automatique: 100%
@jrquick peut également vous aider stackoverflow.com/questions/43186489/onscroll -event-ionic-2
dans votre fichier html ajoutez ceci
@HostListener('ionScroll', ['$event']) onScroll(event){
console.log(event.detail.scrollTop)
console.log('im scrolling')
}
dans votre fichier .ts ajoutez ceci
<ion-content [scrollEvents]="true"></ion-content>
je modifie le code plz vérifier
@KiranMistry Cela ne fonctionnait toujours pas. Merci quand même.
Je modifie à nouveau le message s'il vous plaît jeter un oeil à ionic