Я просто провів серйозний час, розгадуючи деякі речі з React та прокручуючи події / позиції - так що для тих, хто все ще шукає, ось що я знайшов:
Висоту вікна перегляду можна знайти за допомогою window.innerHeight або за допомогою document.documentElement.clientHeight. (Поточна висота вікна перегляду)
Висоту всього документа (тіла) можна знайти за допомогою window.document.body.offsetHeight.
Якщо ви намагаєтеся знайти висоту документа і знаєте, коли ви потрапили в нижню частину - ось що я придумав:
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
});
}
}
(Мій навігаційний шар був 72 пікселів у фіксованому положенні, таким чином, -72, щоб отримати кращий тригер прокрутки події)
Нарешті, ось ряд команд прокрутки до console.log (), які допомогли мені активно зрозуміти математику.
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);
Вау! Сподіваюся, це комусь допоможе!
.bind(this)
аргументи зворотного виклику, оскільки він вже пов'язаний конструктором.