详解使用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 相关文章推荐
调用js时ie6和ie7,ff的区别
Aug 19 Javascript
js loading加载效果实现代码
Nov 24 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
Apr 16 Javascript
一个简单的jquery的多选下拉框(自写)
May 05 Javascript
简单封装js的dom查询实例代码
Jul 08 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
Aug 25 Javascript
npm国内镜像 安装失败的几种解决方案
Jun 04 Javascript
深入理解ES6学习笔记之块级作用域绑定
Aug 19 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
Apr 23 Javascript
微信小程序实现多行文字超出部分省略号显示功能
Oct 23 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
Nov 20 Javascript
使用Bootstrap做一个朝代历史表
Dec 10 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
PHP生成UTF8文件的方法
2010/05/15 PHP
PHP连接MongoDB示例代码
2012/09/06 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
Zend Framework入门知识点小结
2016/03/19 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
javascript string字符串优化问题
2011/07/31 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
javascript中undefined与null的区别
2015/08/16 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
2015/10/14 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
vue+element-ui动态生成多级表头的方法
2018/08/28 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
2019/09/10 Javascript
js实现点赞效果
2020/03/16 Javascript
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
python print出共轭复数的方法详解
2019/06/25 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
Django数据结果集序列化并展示实现过程
2020/04/22 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
旅游管理实习自我鉴定
2013/09/29 职场文书
电子商务毕业生求职信
2013/11/10 职场文书
营销总经理的岗位职责
2013/12/15 职场文书
司机检讨书
2014/02/13 职场文书
2014学习全国两会精神心得体会2000字
2014/03/11 职场文书
党员干部承诺书
2014/03/25 职场文书
学习雷锋活动总结
2014/04/29 职场文书
爱与责任演讲稿
2014/05/20 职场文书
员工团队活动方案
2014/08/28 职场文书
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python
MySQL分区路径子分区再分区
2022/04/13 MySQL