vue切换页面(路由)时如何保持滚动条回到顶部
作者:牛先森家的牛奶 发布时间:2024-05-28 15:54:49
标签:vue,切换页面,滚动条,顶部
vue切换“页面”(路由)时保持滚动条回到顶部
vue项目做pc端的时候,发现在两个页面切换时 滚动条没有回到顶部而是保持原先的位置;
这是由于vue是单页面应用,只是更换了路由内容,还在当前页面滚动条是不会回到顶部的。
解决办法是在切换路由的时候,将滚动区域的滚动条复位为0。
// 使用 watch 监听$router的变化,
watch: {
'$route': function(to, from) {
document.body.scrollTop = 0
document.documentElement.scrollTop = 0
}
}
当然看页面的布局,可能滚动区域并不是document的scrollTop为0 能有效果,和项目里面的布局滚动区域有关,下面是项目里面的滚动区域 app-main ;
<template>
<div id="app">
<router-view />
<!-- 骨架屏,在菜单组件触发隐藏,目前没想到又好的方式处理 -->
<common-skeleton v-if="showSkeleton" />
</div>
</template>
<script>
import CommonSkeleton from './components/Skeleton/common'
export default {
name: 'App',
components: {
CommonSkeleton
},
computed: {
showSkeleton() {
return this.$store.state.settings.showSkeleton
}
},
watch: {
'$route'(val) {
if (!document.getElementsByClassName('app-main') || !document.getElementsByClassName('app-main').length) {
return
}
document.getElementsByClassName('app-main')[0].scrollTop = 0
}
}
}
</script>
<style lang="scss" scoped>
@import "~@/styles/mixin.scss";
@import "~@/styles/variables.scss";
#app {
width: 100%;
height: 100%;
@include clearfix;
}
</style>
vue页面跳转后,滚动条不在顶部的解决
问题描述
vue在将页面滚动到页面中部或者底部(反正不在顶部),再进行页面跳转后,新页面的滚动条还处于上一个页面的位置,并没有更新到页面顶部
解决方法
在全局路由钩子里面将页面滚动到页面顶部
router.beforeEach((to, from, next) => {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
// 兼容IE
window.scrollTo(0, 0);
next();
})
来源:https://blog.csdn.net/weixin_42681295/article/details/122712710
0
投稿
猜你喜欢
- 前些日子做了一个项目关于vue项目需要头像裁剪上传功能,看了一篇文章,在此基础上做的修改完成了这个功能,与大家分享一下。原文:https:/
- 以国内最流行ASP为例,我不知道有多少人会在写代码时想到“容错”这个概念,实际上当我遇到这种事时,也是不了了之。为什么呢,想想最初的意思是认
- 重试指的是当加载出错时,有能力重新发起加载组件的请求。异步组件加载失败后的重试机制,与请求服务端接口失败后的重试机制一样。所以,先来讨论接口
- javascript曾一度被认为是玩具型的语言,因为它太容易上手,而且,javascript曾一度担任为web站点“打杂”的职责。直到Aja
- 刚开始涉及到图像处理的时候,在opencv等库中总会看到mask这么一个参数,非常的不理解,在查询一系列资料之后,写下它们,以供翻阅。什么是
- imadjust简介imadjust是一个计算机函数,该函数用于调节灰度图像的亮度或彩色图像的颜色矩阵。在matlab的命令窗口中键入: d
- gojson是快速解析json数据的一个golang包,你使用它可以快速的查找json内的数据安装 go get github.com/wi
- 起因是这样的,有一张表存在慢sql,查询耗时最多达到12s,定位问题后发现是由于全表扫描导致,需要对字段增加索引,但是表的数据量600多万有
- HTTP格式HTTP GET请求的格式:GET /path HTTP/1.1Header1: Value1Header2: Value2He
- 今天彬Go将和大家一起讨论网页设计趋势中很重要的环节,那就是”勾引”用户的按钮。所谓”勾引”用户的按钮,其实对于Web设计师来说,就是如何设
- 目录1.根据默认的行列索引操作1.1行删除1.2列删除2.根据自定义的行列索引操作2.1行删除2.2列删除本文介绍Pandas中DataFr
- 本文实例讲述了Python随机数用法。分享给大家供大家参考,具体如下:1. random.seed(int)给随机数对象一个种子值,用于产生
- 介绍我编写了一个快速且带有斑点的python脚本,以可视化nmap和masscan的结果。它通过解析来自扫描的XML日志并生成所扫描IP范围
- 依赖项目基础配置使用 vue-cli 生成自适应方案核心: 阿里可伸缩布局方案 lib-flexiblepx转rem:px2rem,它有we
- 迭代器是一种支持next()操作的对象。它包含一组元素,当执行next()操作时,返回其中一个元素;当所有元素都被返回后,生成一个StopI
- 在 HTML 中使用JavaScriptJavaScript能以两种方式嵌入HTML:作为语句和函数使用时,用 SCRIPT 标记作为事件处
- 1. 用Python每天给女神发送舔狗问候用Python自动发送最基本的邮件(主题+收件人)知识点邮件结构以263企业邮为例邮件形式内容最基
- 下载地址:https://www.percona.com/downloads/XtraBackup/安装xtrabackup[root@no
- Internet Explorer 8 Beta 测试了一年多之后,今天,IE8 终于发布了。它绝对好过 IE7,还有一些不错的新功能,如
- 模仿学习同事的代码来写的,主要是搞懂python中如何来组织包,如何调用包,如何读取配置文件,连接数据库,设置路由,路由分组。(注:使用的是