dom.scrollTop已经有值但是打印一直是0

// 监听滚动
mainDom = document.querySelector('main');
document.addEventListener('mousewheel', this.scrollFun, false)
scrollFun = ()=>{
    console.dir(dom)
    console.log(dom.scrollTop)
}

打印的时候,console.dir打印出的dom的scrollTop已经有值,但是console.log打印出的反而是0.

为什么呢,怎么样才能及时的拿到这个值

阅读 2.4k
3 个回答

确认一下mainDom是不是滚动的元素
比如segmentfault的这个页面,scrollTop的值在html标签上,不在body上。
image.png
image.png

emmmm 仔细看一下这段代码有3个可能有问题的地方:
1,是<main>标签吗?有没有漏写#或者.,
2,怎么两个变量一个叫mainDom一个叫dom,
3,this.scrollFun是下面的scrollFun函数吗

console.log(document.documentElement.scrollTop)

image.png

mainDom = document.scrollingElement//document.querySelector('main');

scrollFun = ()=>{
    console.dir(mainDom)
    console.log(mainDom.scrollTop)
}
document.addEventListener('scroll', this.scrollFun, false)

你在这里玩找不同呢? 一个是 dom 变量不对、一个是赋值晚于使用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题