/* 父组件中 */
clickSide(num) {
const index = $(this).index();
$.fn.fullpage.moveTo(num + 1);
},
然后通过provide,inject暴露给后代组件,给它们调用,规则如下,触底或者触顶的时候触发跳转。
这里因为需要等到页面内部滚动完成再跳转,所以我用@scroll.stop @wheel.stop屏蔽了原本的滚动事件(这里不能去除,去除这里会让内部元素无法滚动而直接跳转)
/* 子组件中,这里子组件有多个 zhuyeGridWheel是wheel监听事件 */
zhuyeGridWheel(e){
console.log(this.$refs.grid.scrollTop); //滚动高度
console.log(this.$refs.grid.scrollHeight); //滚动部分的总高度
console.log(this.$refs.grid.clientHeight); //显示部分的高度
// 向下滚动
if(e.deltaY > 0 &&
this.$refs.grid.scrollTop + this.$refs.grid.clientHeight >= this.$refs.grid.scrollHeight - 1
){
console.log('去下一个');
this.clickSide(2)
}
// 向上滚动
if(e.deltaY < 0 &&
this.$refs.grid.scrollTop == 0
){
console.log('去上一个');
this.clickSide(0)
}
},
现在问题是,如果我从第一个页面跳转到第二个页面,中途鼠标滚轮快速滚动且只动滚轮的时候,如果我不等待一下或者移动一下鼠标,这里就还会继续触发上一个页面组件的方法 this.clickSide,
比如:我从 页面0 跳转到 页面1 ,页面0 会先执行 this.clickSide(1) ,这时候页面已经跳转到下一个,如果我在跳转的过程中,不等待一下或者移动一下鼠标,页面依旧会执行 页面0 中的 this.clickSide(1) 即使 页面1 依旧满足触底跳转条件,而不是 页面1 中的 this.clickSide(2)
-
没看明白什么问题?在切换页面的过程中,比如1-》2,2未完全显示,但是由于快速滚动滚轮,触发了2中的触底操作,需要立即切换到下一页(3),但是没执行?
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!