详解使用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 相关文章推荐
JsRender for index循环索引用法详解
Oct 31 Javascript
js实现图片漂浮效果的方法
Mar 02 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
Dec 02 Javascript
vue之nextTick全面解析
May 17 Javascript
EasyUI中的dataGrid的行内编辑
Jun 22 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
Dec 08 Javascript
微信小程序页面间传值与页面取值操作实例分析
Apr 30 Javascript
vue.js 2.0实现简单分页效果
Jul 29 Javascript
Vue.js实现可编辑的表格
Dec 11 Javascript
JavaScript或jQuery 获取option value值方法解析
May 12 jQuery
浅谈vue项目,访问路径#号的问题
Aug 14 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
Nov 09 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下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
php的memcached客户端memcached
2011/06/14 PHP
ajax 的post方法实例(带循环)
2011/07/04 PHP
PHP脚本自动识别验证码查询汽车违章
2016/12/20 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
PHP实现通过二维数组键值获取一维键名操作示例
2019/10/11 PHP
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
2017/03/15 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
JS实现简易换图时钟功能分析
2018/01/04 Javascript
单页面vue引入百度统计的使用方法示例详解
2018/10/13 Javascript
vue 实现setInterval 创建和销毁实例
2020/07/21 Javascript
利用js canvas实现五子棋游戏
2020/10/11 Javascript
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
对Python 内建函数和保留字详解
2018/10/15 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
python Kmeans算法原理深入解析
2019/08/23 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
python实现人脸签到系统
2020/04/13 Python
python实现发送邮件
2021/03/02 Python
Kidsroom台湾:来自德国的婴儿用品
2017/12/11 全球购物
局火灾防控工作方案
2014/05/25 职场文书
计算机专业自荐信范文
2014/05/28 职场文书
保研导师推荐信
2015/03/25 职场文书
车间统计员岗位职责
2015/04/14 职场文书
2015年加油站工作总结
2015/05/13 职场文书
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技
go goth封装第三方认证库示例详解
2022/08/14 Golang