详解使用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中简单的实现像C#中using功能(有源码下载)
Jan 09 Javascript
建议大家看下JavaScript重要知识更新
Jul 08 Javascript
javascript 实用的文字链提示框效果
Jun 30 Javascript
php对mongodb的扩展(初识如故)
Nov 11 Javascript
jQuery+PHP打造滑动开关效果
Dec 16 Javascript
全面解析Bootstrap图片轮播效果
Dec 03 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
May 25 Javascript
PHP7新特性简述
Jun 11 Javascript
微信小程序 获取二维码实例详解
Jun 23 Javascript
快速了解Node中的Stream流是什么
Feb 13 Javascript
layui操作列按钮个数和文字颜色的判断实例
Sep 11 Javascript
微信小程序实现下滑到底部自动翻页功能
Mar 07 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基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
JavaScript 选中文字并响应获取的实现代码
2011/08/28 Javascript
JavaScript中的作用域链和闭包
2012/06/30 Javascript
javascript中window.event事件用法详解
2012/12/11 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
jQuery新窗口打开外链接
2016/07/21 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
javascript-解决mongoose数据查询的异步操作
2016/12/22 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
node实现分片下载的示例代码
2018/10/17 Javascript
Python编程中的文件操作攻略
2015/10/16 Python
python如何获取列表中每个元素的下标位置
2019/07/01 Python
如何更优雅地写python代码
2019/07/02 Python
python代码实现将列表中重复元素之间的内容全部滤除
2020/05/22 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
2020/12/11 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
2021/01/29 Python
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
医药大学生求职简历的自我评价
2013/10/17 职场文书
QA工程师岗位职责
2013/11/20 职场文书
大学生怎样进行自我评价
2013/12/07 职场文书
商场消防管理制度
2014/01/12 职场文书
酒店端午节促销方案
2014/02/18 职场文书
法人授权委托书范本
2014/09/17 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
七一建党节慰问信
2015/02/14 职场文书
2015年保育员个人工作总结
2015/05/13 职场文书
使用tensorflow 实现反向传播求导
2021/05/26 Python