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

前端之家收集整理的这篇文章主要介绍了详解使用vue-router进行页面切换时滚动条位置与滚动监听事件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

说说我的破解方法

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

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

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; } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

原文链接:https://www.f2er.com/vue/40910.html

猜你在找的Vue相关文章