详解使用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 相关文章推荐
jQuery点击后一组图片左右滑动的实现代码
Aug 16 Javascript
js实现鼠标触发图片抖动效果的方法
Feb 27 Javascript
javascript最基本的函数汇总
Jun 25 Javascript
利用prop-types第三方库对组件的props中的变量进行类型检测
May 02 Javascript
VUE元素的隐藏和显示(v-show指令)
Jun 23 Javascript
JS原生数据双向绑定实现代码
Aug 14 Javascript
基于JavaScript实现抽奖系统
Jan 16 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
Sep 28 Javascript
脚手架vue-cli工程webpack的基本用法详解
Sep 29 Javascript
vue项目打包之后背景样式丢失的解决方案
Jan 17 Javascript
JavaScript修改注册表实例代码
Jan 05 Javascript
原生JS实现留言板
Mar 26 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目录函数实现创建、读取目录教程实例
2011/01/13 PHP
php模拟js函数unescape的函数代码
2012/10/20 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
php数组分页实现方法
2016/04/30 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
php提取微信账单的有效信息
2018/10/01 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
javascript 限制输入脚本大全
2009/11/03 Javascript
JS解析XML的实现代码
2009/11/12 Javascript
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
JavaScript的各种常见函数定义方法
2014/09/16 Javascript
javascript获取当前鼠标坐标的方法
2015/01/10 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
fullpage.js最后一屏滚动方式
2018/02/06 Javascript
vuejs router history 配置到iis的方法
2018/09/20 Javascript
使用webpack4编译并压缩ES6代码的方法示例
2019/04/24 Javascript
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
python在文本开头插入一行的实例
2018/05/02 Python
python pygame实现2048游戏
2018/11/20 Python
python安装numpy和pandas的方法步骤
2019/05/27 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
澳大利亚珍珠首饰购物网站:Vayo Pearls
2019/03/11 全球购物
怎样声明一个匿名的内部类
2016/06/01 面试题
党风廉政建设责任书
2014/04/14 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
邀请函怎么写
2015/01/30 职场文书
公司出差管理制度范本
2015/08/05 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
关于Python中进度条的六个实用技巧分享
2022/04/05 Python