ฉันเพิ่งใช้เวลาบางอย่างในการหาบางสิ่งด้วยการโต้ตอบและเลื่อนเหตุการณ์ / ตำแหน่ง - ดังนั้นสำหรับผู้ที่ยังคงดูนี่คือสิ่งที่ฉันพบ:
ความสูงวิวพอร์ตสามารถพบได้โดยใช้ 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
});
}
}
(navbar ของฉันคือ 72px ในตำแหน่งคงที่ดังนั้น -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)
จากการโต้แย้งกลับเพราะมันถูกผูกไว้โดยตัวสร้าง