vue中监听scroll事件失效的问题及解决

 更新时间:2022年09月16日 08:50:07   作者:°折月煮酒  
这篇文章主要介绍了vue中监听scroll事件失效的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue监听scroll事件失效问题

vue项目中遇到需要监听页面某个元素距顶部距离实现吸顶效果,正常的window.addEventListener('scroll', this.handleScroll)完全失效,经过一段时间的探索发现这个事件在子组件中会遇到问题。

可以用元素上的 @scroll事件来监听滚动,但有一点要注意,scroll的元素需要确认 设置overflow-y:scroll;height:100%的样式。

下面附实现成功的代码

1.顶部元素添加 @scroll事件监听

<div class="specialty-store-page" ref="scrollBox" @scroll="handleBlScroll">

2.确保监听的元素 overflow-y:scroll;height:100%

3.监听事件

   handleBlScroll() {
      let _blTop = this.$refs.bl.getBoundingClientRect().top
      this.tabFixed = _blTop < 46
      this.navShowFlag = this.$refs.scrollBox.scrollTop > this.RootEM * 0.92
      let _gcTop = this.$refs.goodsContainer.getBoundingClientRect().top//这里是子元素距顶部的高度
    }

可以在父元素中添加滚动,通过 this.$refs.goodsContainer.getBoundingClientRect().top来获取子元素的顶部距离进行判断 

vue监听scroll事件

很小的功能,记录一下

mounted() {
    window.addEventListener('scroll', this.handleScroll, true)
},
methods: {
    handleScroll: function() {
          console.log(document.documentElement.scrollTop || document.body.scrollTop)
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • Vue+Element+Springboot图片上传的实现示例

    Vue+Element+Springboot图片上传的实现示例

    最近在学习前段后分离,本文介绍了Vue+Element+Springboot图片上传的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2021-11-11
  • Vue前端书写规范大全(非常详细!)

    Vue前端书写规范大全(非常详细!)

    在团体开发项目中,为了团队所有成员书写可维护的代码,而不是一次性的代码,让团队当中其他人看你的代码能一目了然,下面这篇文章主要给大家介绍了关于Vue前端书写规范的相关资料,需要的朋友可以参考下
    2023-01-01
  • vue脚手架安装以及安装失败问题解决办法

    vue脚手架安装以及安装失败问题解决办法

    我们通常会用到脚手架vuecli创建项目,此时需要安装脚手架,下面这篇文章主要给大家介绍了关于vue脚手架安装以及安装失败问题的解决办法,需要的朋友可以参考下
    2022-07-07
  • Vue-Cli中自定义过滤器的实现代码

    Vue-Cli中自定义过滤器的实现代码

    本篇文章主要介绍了Vue-Cli中自定义过滤器的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Vue3 源码分析reactive readonly实例

    Vue3 源码分析reactive readonly实例

    这篇文章主要为大家介绍了Vue3 源码分析reactive readonly实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • vue3与webpack5安装element-plus样式webpack编译报错问题解决

    vue3与webpack5安装element-plus样式webpack编译报错问题解决

    这篇文章主要介绍了vue3与webpack5安装element-plus样式webpack编译报错,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • vue中的Object.freeze() 优化数据方式

    vue中的Object.freeze() 优化数据方式

    这篇文章主要介绍了vue中的Object.freeze()优化数据方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue如何动态给img赋值

    vue如何动态给img赋值

    这篇文章主要介绍了vue如何动态给img赋值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Vue项目如何打包成移动端APP

    Vue项目如何打包成移动端APP

    这篇文章主要介绍了Vue项目如何打包成移动端APP,本文通过图文示例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-12-12
  • Vue.js函数式组件的全面了解

    Vue.js函数式组件的全面了解

    函数式组件就是函数是组件,组件是函数,它的特征是没有内部状态、没有生命周期钩子函数、没有this(不需要实例化的组件),这篇文章主要给大家介绍了关于Vue.js函数式组件的相关资料,需要的朋友可以参考下
    2021-10-10

最新评论