导航到其他页面时,ScrollPosition 未设置为顶部
P粉556159786
2023-08-30 09:07:14
<p>网页采用主从方式设计。主控具有选项卡(左窗格),单击这些选项卡会在从属(右窗格)中显示相应的页面。例如。 master 有三个两个选项卡“架构和模板”,其中默认显示架构。用户可以使用左侧窗格中的选项卡(由主页面加载)在这两个页面(由从页面加载)之间导航。</p>
<p>现在,当用户滚动到架构页面中的某个位置并导航到模板页面时,滚动位置不会设置为顶部。但是滚动行为是在路由器文件中设置的。</p>
<pre class="brush:php;toolbar:false;">const createRouter = () =>
new VueRouter({
scrollBehavior: () => ({ x: 0, y: 0 }),
routes:[
//has all the routes
]
});</pre>
<p>当在scrollBehavior附近设置断点并观察时,只要有导航,但从体系结构导航到模板页面时滚动位置未设置为顶部,就会击中该行。</p>
<p>但是,当滚动到模板页面中的特定位置并导航到体系结构页面时,该页面将设置为顶部。</p>
<p>还尝试编写 window.scrollTo(0, 0); templates.ts 中的 Mounted() 内部的函数。即使被点击,但页面未设置为顶部。</p>
<p>有人可以解释为什么会发生这种情况吗?我尝试了 stackoverflow 中列出的几乎所有可能的解决方案。</p>
我在vue中也遇到这个问题。如果你想滚动到顶部,你将需要使用这个技巧。而不是
window.scrollTo(0, 0);
在 setTimeout 中使用它,超时时间很少。settimeout(()=>{ window.scrollTo(0, 0); }, 10)
希望这会有所帮助。