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

时间:2023-03-10 04:31:56
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();
},