美文网首页
vue监听滚动scrollTop一直是0的问题

vue监听滚动scrollTop一直是0的问题

作者: 刘其瑞 | 来源:发表于2019-06-05 16:44 被阅读0次
先附上正常写法
  mounted () {
    window.addEventListener('scroll', this.handleScroll, true)
  },
  destroyed () {
    document.removeEventListener('scroll', this.handleScroll)
  },
  methods: {
    handleScroll () {
      let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
      console.log('scrollTop', scrollTop);
    }
  }

结果获取到的一直是0

输出

很简单的问题,,当时一直没想明白。郁闷了一会在网上搜也没搜到答案,所以写个简书吧

解决方法

    handleScroll () {
      // let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
      let scrollTop = document.querySelector('#app').scrollTop
      console.log('scrollTop', scrollTop);
    }

直接获取#app的就可以了。(当然,Vue 里的代码最好在 destroyed 钩子触发时,将一些事件监听器移除,以免对其他组件造成影响。)

相关文章

网友评论

      本文标题:vue监听滚动scrollTop一直是0的问题

      本文链接:https://www.haomeiwen.com/subject/aoudxctx.html