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


Posted in Javascript onMarch 08, 2017

按照正常的产品逻辑,我们在进行页面切换时滚动条应该是在页面顶部的,可是。。。在使用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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
解决bootstrap中modal遇到Esc键无法关闭页面
Mar 09 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
Aug 24 Javascript
jQuery中通过ajax的get()函数读取页面的方法
Feb 29 Javascript
浅谈JavaScript中的this指针和引用知识
Aug 05 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
May 29 Javascript
微信小程序 弹框和模态框实现代码
Mar 10 Javascript
vue-router路由懒加载和权限控制详解
Dec 13 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
Aug 29 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
Oct 12 Javascript
javascript History对象原理解析
Feb 17 Javascript
vue 需求 data中的数据之间的调用操作
Aug 05 Javascript
vue-openlayers实现地图坐标弹框效果
Sep 24 Javascript
vue使用watch 观察路由变化,重新获取内容
Mar 08 #Javascript
js实现倒计时效果(小于10补零)
Mar 08 #Javascript
详解Vue监听数据变化原理
Mar 08 #Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
Mar 08 #Javascript
Vue 父子组件、组件间通信
Mar 08 #Javascript
jQuery的$.extend 浅拷贝与深拷贝
Mar 08 #Javascript
vue-resourse将json数据输出实例
Mar 08 #Javascript
You might like
php读取数据库信息的几种方法
2008/05/24 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
2015/11/24 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
JavaScript 高效运行代码分析
2010/03/18 Javascript
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
JavaScript实现旋转轮播图
2020/08/18 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
详解Vue中watch的高级用法
2018/05/02 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
微信小程序嵌入腾讯视频源过程详解
2019/08/08 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
2019/09/25 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
vue实现扫码功能
2020/01/17 Javascript
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
[01:27]DOTA2电竞之夜 今夜共饮庆功酒
2014/08/02 DOTA
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
2014/07/14 Python
python数据结构之链表的实例讲解
2017/07/25 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
Python3数字求和的实例
2019/02/19 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
PyTorch中的Variable变量详解
2020/01/07 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
学校办公室主任职责
2013/12/27 职场文书
交通安全教育制度
2014/02/02 职场文书
网站创业计划书
2014/04/30 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
宾馆前台接待岗位职责
2015/04/02 职场文书
JavaScript模拟实现网易云轮播效果
2022/04/04 Javascript
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android