页面滚动条滚动距离为0的排查

178 阅读1分钟

我们在实际开发中,经常碰到这样的场景,求取页面滚动条滚动了多少距离,也就是页面往上卷起来的距离,常取这三个值中的一个,但有时候这三个值在页面滚动的时候还是0,这个时候就要注意看下页面的滚动可能不在body上的,还有可能是在app根节点上

  window.pageYOffset|| document.documentElement.scrollTop|| document.body.scrollTop

这个时候对window的监听可能就要移到对根节点app的滚动事件的监听

  const appObj: HTMLFormElement | null = document.querySelector('#app');
  appObj?.addEventListener('scroll', this.handleScroll);

计算滚动的距离就是根节点app的scrollTop的值,即scrollTop的数值

  const appObj: HTMLFormElement | null = document.querySelector('#app');
  const scrollTop = appObj?.scrollTop as number;