4 回答

TA貢獻2065條經(jīng)驗 獲得超14個贊
一個全局組件創(chuàng)建的時候創(chuàng)建監(jiān)聽
created() {
window.addEventListener('scroll', this.doSomething);
},
destroyed() {
window.removeEventListener('scroll', this.doSomething);
}

TA貢獻1797條經(jīng)驗 獲得超6個贊
可以在 root vue 中監(jiān)聽一下滾動事件,然后提供接口給其他組件添加監(jiān)聽:
// 在 APP.vue 中添加監(jiān)聽,并且在 vue 上掛載添加監(jiān)聽和去除監(jiān)聽的方法
const onScrollListeners = []
// 在其他組件中直接使用 this.$addOnScrollListener 增加監(jiān)聽, $removeOnScrollListener去除監(jiān)聽
Vue.prototype.$addOnScrollListener = listener=> onScrollListeners.push(listener)
Vue.prototype.$removeOnScrollListener = listener=> onScrollListeners.splice(onScrollListeners.indexOf(listener)
window.onscroll = ()=> {
if(xxxx){ // 判斷是否達到你要的條件
onScrollListeners.forEach(listener=>listener())
}
}
添加回答
舉報