我想在Vue组件中收听窗口滚动事件.以下是我到目前为止所做的try :

<my-component v-on:scroll="scrollFunction">
    ...
</my-component>

在我的组件方法中定义了scrollFunction(event),但它似乎不起作用.

有人知道怎么做吗?

谢谢

推荐答案

事实上我找到了解决办法.我在创建组件时在scroll事件上添加一个事件侦听器,在销毁组件时删除事件侦听器.

export default {
  created () {
    window.addEventListener('scroll', this.handleScroll);
  },
  destroyed () {
    window.removeEventListener('scroll', this.handleScroll);
  },
  methods: {
    handleScroll (event) {
      // Any code to be executed when the window is scrolled
    }
  }
}

希望这有帮助!

Vue.js相关问答推荐

为什么我的数组在 onBeforeMount 函数中不为空,但在 onMounted 函数中为空

Vuetify/Vue3 插槽模板之间的阴影

如何在Vue3中使用vuechartjs 5.2从父组件更新图表

有没有办法将react 键作为值传递给由 v-for 创建的 v-model

如何在vue中获取特定类别的产品列表

如何使用 vue.js 获取本地 html 文件?

从组件的 内的组件调用方法

如何像 React 中的 {...props} 一样在 Vue 中解构 props?

Vue 和 TypeScript 所需的props

命名空间模块身份验证的重复命名空间身份验证

Vue更改宽度和内容

Vue-i18n '无法读取 Proxy.Vue.$t 处未定义的属性 '_t'

vue组件中导入和使用three.js库

try 通过 Vue.js 中的渲染传递props并观察它们

在 Vue JS 组件中使用 Laravel 路由的最佳方法是什么

Bootstrap-vue:如何将数据传递给模态?

使用 Vue 的点击编辑文本字段

使用 vuejs 动态设置 id 标签

组件已注册但未使用 vue/no-unused-components

在 Vuejs 中放置 firebase.auth().onAuthStateChanged() 的位置