美文网首页
vue子组件监听滚动

vue子组件监听滚动

作者: A郑家庆 | 来源:发表于2021-06-07 16:05 被阅读0次

背景

页面结构是一个父组件嵌套一个子组件,我在子组件中监听页面滚动,使用

window.addEventListener('scroll', scrollPage,true)

发现scrollPage一直没有触发,后来发现这个是子组件所以使用window.addEventListener无效,这时候需要将要滚动的部分设置overflow-y:scroll;height:100%的样式,子组件就可以监听到滚动,然后在滚动的元素上命名一个ref,最后在mounted中获取这个元素,给这个元素绑定监听事件就可以了

mounted () {
   let scrollView = this.$refs.scrollView
   scrollView.addEventListener('scroll', this.handleScroll, true)
}

点击按钮页面返回顶部

点击按钮触发backTop方法

let scrollView = this.$refs.scrollView
let timeTop = setInterval(() => {
   scrollView.scrollTop = scrollView.scrollTop - 50
   if (scrollView.scrollTop <= 0) {
      clearInterval(timeTop)
   }
})

相关文章

网友评论

      本文标题:vue子组件监听滚动

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