vue监听scroll使用报错的解决办法

错误说明:在切换路由以后,依旧在其他页面触发了scroll有关的函数,

错误原因:在spa项目中,window对象是不变的,所以每次使用后需要销毁。

解决办法:vue的生命周期destroyed中销毁就可以了

 

js方法封装:

export default {
  //移动端iframe缩略图滚动后固定定位
  iframeScroll:{
    scrollFun:function(){   //滚动执行的方法
      var top = $(document).scrollTop();
      if(top >=95){
        $(".step_global .iframe_box").addClass("fixed");
      }else{
        $(".step_global .iframe_box").removeClass("fixed");
      }
    },
    fixed:function(){
      window.addEventListener('scroll',this.scrollFun);
    },
    //window.scroll需要销毁
    destroy:function(){
      window.removeEventListener('scroll',this.scrollFun)
    }
  },



}

引入:

import common from '../../script/common';

 

使用:

mounted(){
    common.iframeScroll.fixed();
  },
  destroyed(){
    common.iframeScroll.destroy();
  },

 

转载于:https://www.cnblogs.com/LChenglong/p/8134717.html

你可能感兴趣的:(vue监听scroll使用报错的解决办法)