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