前端小火龙 2023-06-25 16:14 采纳率: 93.3%
浏览 67
已结题

jquery.fullPage鼠标滚轮快速从一个页面滚到下一个页面,如果用手动触发跳转,则会继续执行上一个页面的wheel监听事件

  • jquery.fullPage在鼠标快速滚动滚动时候(即从一个页面跳转到另一个页面),如果我不用其本身默认的页面滚动事件,而是把跳转单独拿出来,如下
/*  父组件中  */
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)

  • 我在这里尝试在跳转的时候用this.$refs.grid.removeEventListener("wheel", this.zhuyeGridWheel);卸载,但是并没有什么用,移除了之后,页面1中的滚动监听也不会触发 也就是说,即便没有这个监听,跳转到下一个页面的时候,也根本不会触发下一个页面的监听

-

  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2023-06-25 20:03
    关注

    没看明白什么问题?在切换页面的过程中,比如1-》2,2未完全显示,但是由于快速滚动滚轮,触发了2中的触底操作,需要立即切换到下一页(3),但是没执行?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月4日
  • 已采纳回答 6月26日
  • 修改了问题 6月25日
  • 修改了问题 6月25日
  • 展开全部

悬赏问题

  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价