J'ai juste passé un peu de sérieux de temps à essayer de comprendre certaines choses à Réagir et les événements de défilement / positions - donc, pour ceux qui cherchent encore, voici ce que j'ai trouvé:
La fenêtre d'affichage de la hauteur peut être trouvé en utilisant la fenêtre.innerHeight ou à l'aide de document.documentElement.clientHeight. (Fenêtre d'affichage en cours de la hauteur)
La hauteur de l'intégralité du document (corps) peut être trouvé à l'aide de la fenêtre.document.corps.offsetHeight.
Si vous êtes essayant de trouver la hauteur du document et de savoir quand vous avez touché le fond, voici ce que j'ai trouvé:
if (window.pageYOffset >= this.myRefII.current.clientHeight && Math.round((document.documentElement.scrollTop + window.innerHeight)) < document.documentElement.scrollHeight - 72) {
this.setState({
trueOrNot: true
});
} else {
this.setState({
trueOrNot: false
});
}
}
(Ma barre de navigation a été 72px en position fixe, donc la -72 pour obtenir un meilleur défilement de l'événement de déclenchement)
Enfin, voici un certain nombre de faire défiler les commandes de la console.log(), qui m'a aidé à comprendre mes calculs activement.
console.log('window inner height: ', window.innerHeight);
console.log('document Element client hieght: ', document.documentElement.clientHeight);
console.log('document Element scroll hieght: ', document.documentElement.scrollHeight);
console.log('document Element offset height: ', document.documentElement.offsetHeight);
console.log('document element scrolltop: ', document.documentElement.scrollTop);
console.log('window page Y Offset: ', window.pageYOffset);
console.log('window document body offsetheight: ', window.document.body.offsetHeight);
Ouf! Espérons que cela aide quelqu'un!