详解使用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 相关文章推荐
JavaScript将数据转换成整数的方法
Jan 04 Javascript
使用jQuery实现input数值增量和减量的方法
Jan 24 Javascript
js显示文本框提示文字的方法
May 07 Javascript
Listloading.js移动端上拉下拉刷新组件
Aug 04 Javascript
vue使用Axios做ajax请求详解
Jun 07 Javascript
angular中实现li或者某个元素点击变色的两种方法
Jul 27 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
Nov 01 Javascript
Vue.directive 自定义指令的问题小结
Mar 04 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
Oct 20 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
Feb 21 Javascript
vant IndexBar实现的城市列表的示例代码
Nov 20 Javascript
gojs实现蚂蚁线动画效果
Feb 18 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数组循环操作详细介绍 附实例代码
2013/02/03 PHP
php实现字符串反转输出的方法
2015/03/14 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
JQuery 操作Javascript对象和数组的工具函数小结
2010/01/22 Javascript
jQuery实现自定义事件的方法
2015/04/17 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
vue路由中前进后退的一些事儿
2019/05/18 Javascript
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
2020/08/14 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
Python中使用Inotify监控文件实例
2015/02/14 Python
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
Python如何优雅获取本机IP方法
2019/11/10 Python
pytorch实现线性拟合方式
2020/01/15 Python
Python函数式编程实例详解
2020/01/17 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
美国知名运动产品零售商:Foot Locker
2016/07/23 全球购物
哈利波特商店:Harry Potter Shop
2018/11/30 全球购物
P D PAOLA意大利官网:西班牙著名的珠宝首饰品牌
2019/09/24 全球购物
金讯Java笔试题目
2013/06/18 面试题
shell变量的作用空间是什么
2013/08/17 面试题
大学本科毕业生求职信范文
2013/12/18 职场文书
餐饮总经理岗位职责
2014/03/07 职场文书
小学二年级学生评语
2014/04/21 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
幼儿园万圣节活动总结
2015/05/05 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL