详解使用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 function代码
May 23 Javascript
这些年、我收集的JQuery代码小结
Aug 01 Javascript
jquery ztree实现下拉树形框使用到了json数据
May 14 Javascript
JS对象与json字符串相互转换实现方法示例
Jun 14 Javascript
图片文字识别(OCR)插件Ocrad.js教程
Nov 26 Javascript
如何用JavaScript实现功能齐全的单链表详解
Feb 11 Javascript
vue单页面在微信下只能分享落地页的解决方案
Apr 15 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
Jun 21 Javascript
20多个小事例带你重温ES10新特性(小结)
Sep 29 Javascript
在 Vue 中编写 SVG 图标组件的方法
Feb 24 Javascript
详解Vue数据驱动原理
Nov 17 Javascript
Bootstrap FileInput实现图片上传功能
Jan 28 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
基于文本的访客签到簿
2006/10/09 PHP
php json与xml序列化/反序列化
2013/10/28 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
2016/08/30 Javascript
原生js仿浏览器滚动条效果
2017/03/02 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
2017/11/09 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
Python运算符重载详解及实例代码
2017/03/07 Python
Python字符编码与函数的基本使用方法
2017/09/30 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
python 通过手机号识别出对应的微信性别(实例代码)
2019/12/22 Python
Visual Studio code 配置Python开发环境
2020/09/11 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
The Hut美国/加拿大:英国领先的豪华在线百货商店
2019/03/26 全球购物
如何设定的weblogic的热启动模式(开发模式)与产品发布模式
2012/09/08 面试题
外贸销售员求职的自我评价
2013/11/23 职场文书
优秀部门获奖感言
2014/02/14 职场文书
经理助理岗位职责
2014/03/05 职场文书
党员四风剖析材料
2014/08/27 职场文书
党的群众路线学习笔记
2014/11/06 职场文书
当幸福来敲门英文观后感
2015/06/01 职场文书
学历证明样本
2015/06/16 职场文书
2016高考感言
2015/08/01 职场文书
七年级数学教学反思
2016/02/17 职场文书
小学教代会开幕词
2016/03/04 职场文书
Golang实现AES对称加密的过程详解
2021/05/20 Golang