详解使用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使用手册之三 CSS操作
Mar 24 Javascript
JavaScript 学习笔记(十六) js事件
Feb 01 Javascript
jqeury eval将字符串转换json的方法
Jan 20 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
Dec 29 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
Jan 15 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
Nov 06 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
Feb 10 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
May 01 jQuery
angular使用post、get向后台传参的问题实例
May 27 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
Jun 08 Javascript
基于JS实现网页中的选项卡(两种方法)
Jun 16 Javascript
JQuery省市联动效果实现过程详解
May 08 jQuery
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
一个odbc连mssql分页的类
2006/10/09 PHP
php更新修改excel中的内容实例代码
2014/02/26 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
php+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
PHP设计模式之观察者模式定义与用法分析
2019/04/04 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
window.onload追加函数使用示例
2014/03/03 Javascript
js密码强度校验
2015/11/10 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
vue之debounce属性被移除及处理详解
2019/11/13 Javascript
使用原生JS实现滚轮翻页效果的示例代码
2020/05/31 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
Python判断某个用户对某个文件的权限
2016/10/13 Python
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
执行Django数据迁移时报 1091错误及解决方法
2019/10/14 Python
python实现while循环打印星星的四种形状
2019/11/23 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
2020/04/22 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
2020/05/26 Python
python的json包位置及用法总结
2020/06/21 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
Book Depository澳大利亚:世界领先的专业在线书店之一
2018/12/27 全球购物
什么是类的返射机制
2016/02/06 面试题
怎样在程序里获得一个空指针
2015/01/24 面试题
计算机毕业大学生求职信
2014/06/26 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书