vue.js - Vue.js 滚动到同一路线的页面顶部
问题描述
我可以像这样为 Vue.js 路由器设置滚动行为:
const router = new Router({
mode: 'history',
routes: [
{
path: '/',
name: 'index',
component: Main
},
{
path: '/some-path',
name: 'some-path',
component: SomePath
}
],
scrollBehavior() {
return {x: 0, y: 0}
}
})
当您单击某些非当前页面的链接时,这非常有效。当我单击已经呈现的链接时,即在页脚中,没有任何反应。Vue Router 假设没有状态转换。在这种情况下,向上滚动的首选方式是什么?
解决方案
你不能做这个低谷vue-router
。但是您可以将滚动到顶部的方法添加到每个router-link。
只需创建一个方法
methods: {
scrollToTop() {
window.scrollTo(0,0);
}
}
并将其添加到链接中
<router-link @click.native="$scrollToTop">
如果你也想在页脚之外使用它,最好将它添加到Vue 原型中
Vue.prototype.$scrollToTop = () => window.scrollTo(0,0)
这不是 100% 的解决方案,但它是最简单的解决方案
推荐阅读
- mysql - 为什么 MySQL 插入/更新的日期结果是错误的(比查询语句中的日期“大”1 天)以及如何解决这个问题?
- r - 使闪亮的应用程序模块彼此共享反应值
- python - 在 discord.py 中使用 Cogs 重写
- google-admin-sdk - 创建名称/描述中包含特殊字符的组时出现 400 和“无效输入:groupDescription”
- spring-cloud - 在浏览器中获取 Eureka 实例元数据
- python - 我知道这是基本的,但我是 Python 的新手。我正在使用 Python 3 和我的编码问题我无法让打印功能与输入一起使用
- python - 如何使用 Kubernetes Python CoreV1API 删除 statefulsets.apps
- pine-script - 如何为交易视图上的策略执行设置自定义时间过滤器
- ruby - Ruby 二进制搜索代码未返回预期结果
- java - 与 Binance 不同的 EMA(指数移动平均线)