4 回答
TA贡献2065条经验 获得超14个赞
一个全局组件创建的时候创建监听
created() {
window.addEventListener('scroll', this.doSomething);
},
destroyed() {
window.removeEventListener('scroll', this.doSomething);
}
TA贡献1797条经验 获得超6个赞
可以在 root vue 中监听一下滚动事件,然后提供接口给其他组件添加监听:
// 在 APP.vue 中添加监听,并且在 vue 上挂载添加监听和去除监听的方法
const onScrollListeners = []
// 在其他组件中直接使用 this.$addOnScrollListener 增加监听, $removeOnScrollListener去除监听
Vue.prototype.$addOnScrollListener = listener=> onScrollListeners.push(listener)
Vue.prototype.$removeOnScrollListener = listener=> onScrollListeners.splice(onScrollListeners.indexOf(listener)
window.onscroll = ()=> {
if(xxxx){ // 判断是否达到你要的条件
onScrollListeners.forEach(listener=>listener())
}
}
添加回答
举报
