繁体   English   中英

导航到其他页面时,ScrollPosition 未设置为顶部

[英]ScrollPosition is not set to top when navigating to other pages

web 页面采用主从方式设计。 主页面有选项卡(左窗格),单击这些选项卡会在从页面(右窗格)中显示相应的页面。 例如。 master 有三个两个选项卡“体系结构和模板”,其中默认显示体系结构。 用户可以使用左窗格中的选项卡(由 master 加载)在这两个页面(由 slave 加载)之间导航。

现在,当用户滚动到架构页面中的某个 position 并导航到模板页面时,滚动 position 未设置为顶部。 但是,滚动行为是在路由器文件中设置的。

const createRouter = () =>
  new VueRouter({
     scrollBehavior: () => ({ x: 0, y: 0 }),
     routes:[
     //has all the routes
     ]
});

当在 scrollBehavior 附近设置断点并观察时,只要有导航,就会命中该行,但在从体系结构导航到模板页面时,滚动位置未设置为顶部。

但是,当滚动到模板页面中的某个 position 并导航到体系结构页面时,该页面设置为顶部。

还尝试编写 window.scrollTo(0, 0); function 在 templates.ts 的 mounted() 中。 即使被击中,但页面未设置为顶部。

有人可以解释为什么会这样。 我几乎尝试了 stackoverflow 中列出的所有可能的解决方案。

我在vue中也有这个问题。 如果你想在顶部滚动,你需要使用这个 hack。 而不是window.scrollTo(0, 0); 在超时时间很短的 setTimeout 中使用它。
settimeout(()=>{ window.scrollTo(0, 0); }, 10)
希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM