Angulaire 4 @HostListener de défilement de la Fenêtre d'événement étrange qui ne fonctionne pas dans Firefox
Je suis en utilisant @HostListener('window:scroll', [])
Angulaire 4 application, afin d'ajouter d'autres classe à l'en-tête de défilement. Il fonctionne très bien dans Chrome, mais j'ai remarqué que dans Firefox 54.0 (je pense que c'est la dernière version en cours) de la classe n'est pas ajouté, il ne les exécute pas onWindowScroll() la méthode à tous. Quelle peut être la raison?
Voici une partie du code et un Plunker Démo (qui soit dit en passant, fonctionne aussi très bien dans Chrome, mais pas sous Mozilla):
public isScrolled = false;
constructor(@Inject(DOCUMENT) private document: any) {}
@HostListener('window:scroll', [])
onWindowScroll() {
const number = this.document.body.scrollTop;
if (number > 150) {
this.isScrolled = true;
} else if (this.isScrolled && number < 10) {
this.isScrolled = false;
}
}
Toute aide serait grandement appréciée.
OriginalL'auteur Julsy | 2017-06-26
Vous devez vous connecter pour publier un commentaire.
J'ai fait face au même problème et l'a résolu en utilisant fenêtre.scrollY plutôt que d'utiliser .document.corps.scrollTop pour le faire fonctionner dans Mozila Firefox. Je sais que c'est étrange, mais ça fonctionne.
OriginalL'auteur Rishabh
essayez ceci:
Je préfère ceci:
OriginalL'auteur Avi
Ce Angulaire de la directive fonctionnent dans les deux Chrome et Firefox:
À l'aide de la directive relative à un élément DIV:
OriginalL'auteur Thomas Skyttegaard Hansen
Comment j'ai résolu ce problème
Fonctionne parfaitement sur Firefox, chrome et les autres navigateurs
Concept: Vous pouvez écouter les propriétés de défilement de l'élément de corps pour l'instant, si vous n'avez pas d'autres défilement de l'élément
OriginalL'auteur Nishant Singh