javascript document.body.scrollTop返回2个值

javascript document.body.scrollTop返回2个值,javascript,scroll,height,Javascript,Scroll,Height,我正在尝试使用javascript document.body.scrollTop获取当前的滚动px,并与一个单页网站的窗口高度进行比较(5个部分)。 我的主要目标是用户在总高度的1/5、2/5、3/5、4/5、5/5区域内滚动,页面将自动停留在该区域。 但在我的代码中,document.body.scrollTop显示了两个不同的值,这让我很困惑 window.onscroll = function() { var winH = document.documentElement.client

我正在尝试使用javascript document.body.scrollTop获取当前的滚动px,并与一个单页网站的窗口高度进行比较(5个部分)。 我的主要目标是用户在总高度的1/5、2/5、3/5、4/5、5/5区域内滚动,页面将自动停留在该区域。 但在我的代码中,document.body.scrollTop显示了两个不同的值,这让我很困惑

window.onscroll = function() {

var winH = document.documentElement.clientHeight
var scrollH = document.body.scrollTop

console.log(winH, scrollD);


if ( winH < (scrollD*1.2) ) {
  console.log(winH , scrollH)

}}
window.onscroll=function(){
var winH=document.documentElement.clientHeight
var scrollH=document.body.scrollTop
日志(winH,滚动);
如果(winH<(滚动条*1.2)){
console.log(winH、scrollH)
}}
在控制台中滚动时,将显示两组具有相同变量的不同高度。 例如:

  • 518 218(从第一控制台日志,这是正确的我的窗口是518px高,并滚动218px)

  • 218218(我不明白为什么这个有相同的值,因为它总是显示相同的值,所以if语句被破坏。)

ps:若我将document.body.scrollTop更改为全局变量,控制台将显示scrollTop值为Null的“无法读取正确性”。为什么它的功能很好


感谢Prasath-k hi,tks的帮助,innerheight将解决问题,但我仍然对控制台日志中的两个不同结果感到困惑。为什么scrollTop的全局变量为null