详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
2017-03-08 16:35
1601 查看
按照正常的产品逻辑,我们在进行页面切换时滚动条应该是在页面顶部的,可是。。。在使用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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
- vue监听滚动事件 实现某元素吸顶或者固定位置显示
- vue监听滚动事件 实现某元素吸顶或者固定位置显示
- js练习之事件切换图片和控制css样式以及指定页面滚动位置
- JavaEE开发之Spring中的事件发送与监听以及使用Profile进行环境切换
- JavaEE开发之Spring中的事件发送与监听以及使用@Profile进行环境切换
- vue2.0路由切换后页面滚动位置不变BUG
- 使用vue-router切换页面时,获取上一页url以及当前页面url
- 使用 vue-router 切换页面时怎么设置过渡动画
- 使用vue.js在页面内组件监听scroll事件
- vue实现某元素吸顶或固定位置显示(监听滚动事件)
- 使用vue-router切换页面时,获取上一页url以及当前页面url
- vue监听滚动事件 实现某元素吸顶或者固定位置显示
- 使用vue.js在页面内组件监听scroll事件的方法
- vue2.0路由切换后页面滚动位置不变BUG的解决方法
- 使用vue-router切换页面时,获取上一页url以及当前页面url
- iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController .
- iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController
- Android中使用Intent进行窗体切换,并且传值和自定义类的对象详解
- IOS学习之UINavigationController详解与使用(二)页面切换和segmentedController