网络编程
位置:首页>> 网络编程>> JavaScript>> 详解使用vue-router进行页面切换时滚动条位置与滚动监听事件

详解使用vue-router进行页面切换时滚动条位置与滚动监听事件

作者:web_captian  发布时间:2024-05-08 09:34:39 

标签:vue,router

按照正常的产品逻辑,我们在进行页面切换时滚动条应该是在页面顶部的,可是。。。在使用vue-router进行页面切换时,发现滚动条所处的位置被自动记录了下来,且在另一个组件内定义的滚动监听事件仍会运行,着实吃了一大惊。。。

说说我的破解方法:

1、在每个需要用vue-router切换的组件的mounted钩子内将页面的位置自动回滚到页面顶部,解决滚动条位置自动记录问题;

2、在每个组件内定义一条变量scrollWatch默认为true,在绑定滚动监听事件时加个if判断,只有在scrollWatch为true时进行监听函数,然后在组件destroyed的钩子内将变量scrollWatch设为false;这样就解决了滚动监听在别的组件内仍会运行的问题。


<script>
import $ from 'jquery';
export default {
data () {
return {
 scrollWatch: true
}
},
mounted() {
$(window).scrollTop(0);
$(window).on('scroll', () => {
 if (this.scrollWatch) {
  //your code here
 }
 }
});
},
destroyed () {
this.scrollWatch = false;
}
}
</script>

来源:104.116.116.112.58.47.47.119.119.119.46.99.110.98.108.111.103.115.46.99.111.109.47.119.101.98.45.99.97.112.116.97.105.110.47.112.47.54.52.48.50.54.57.51.46.104.116.109.108.

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com