Acabo de pasar un tiempo serio resolviendo algunas cosas con React y desplazando eventos / posiciones, así que para aquellos que todavía están buscando, esto es lo que encontré:
La altura de la vista se puede encontrar usando window.innerHeight o mediante document.documentElement.clientHeight. (Altura de la ventana gráfica actual)
La altura de todo el documento (cuerpo) se puede encontrar usando window.document.body.offsetHeight.
Si está intentando encontrar la altura del documento y saber cuándo ha tocado fondo, esto es lo que se me ocurrió:
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
});
}
}
(Mi barra de navegación tenía 72 píxeles en posición fija, por lo tanto, el -72 para obtener un mejor desencadenador de evento de desplazamiento)
Por último, aquí hay una serie de comandos de desplazamiento a console.log (), que me ayudaron a descubrir mis matemáticas activamente.
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);
¡Uf! Espero que ayude a alguien!
.bind(this)
de los argumentos de devolución de llamada ya que está vinculado por el constructor.