详解使用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 Uploadify多文件上传带进度条且传递自己的参数
Aug 28 Javascript
在ASP.NET中使用JavaScript脚本的方法
Nov 12 Javascript
详谈javascript精度问题与调整
Jul 08 Javascript
vue如何获取点击事件源的方法
Aug 10 Javascript
Vue的MVVM实现方法
Aug 16 Javascript
js数组实现权重概率分配
Sep 12 Javascript
React中上传图片到七牛的示例代码
Oct 10 Javascript
Vue.js简易安装和快速入门(第二课)
Oct 17 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
Mar 13 Javascript
jquery+ajax实现异步上传文件显示进度条
Aug 17 jQuery
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
Nov 10 Javascript
Vue 事件的$event参数=事件的值案例
Jan 29 Vue.js
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
自动分页的不完整解决方案
2007/01/12 PHP
php获取淘宝分类id示例
2014/01/16 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
PHP环境搭建的详细步骤
2016/06/30 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
Javascript Object 对象学习笔记
2014/12/17 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
JSP基于Bootstrap分页显示实例解析
2016/06/12 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
2020/05/30 jQuery
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
Python设计模式编程中Adapter适配器模式的使用实例
2016/03/02 Python
python实现k-means聚类算法
2018/02/23 Python
详解Python sys.argv使用方法
2019/05/10 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
python如何提升爬虫效率
2020/09/27 Python
python爬虫---requests库的用法详解
2020/09/28 Python
董事长职责范文
2013/11/08 职场文书
法定代表人授权委托书
2014/04/04 职场文书
铁路安全事故反思
2014/04/26 职场文书
2014年科研工作总结
2014/12/03 职场文书
先进党员事迹材料
2014/12/24 职场文书
创业计划书之小型广告公司
2019/10/22 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python