首页  >  问答  >  正文

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

<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>
P粉556159786P粉556159786416 天前522

全部回复(1)我来回复

  • P粉248602298

    P粉2486022982023-08-31 00:14:03

    我在vue中也遇到这个问题。如果你想滚动到顶部,你将需要使用这个技巧。而不是 window.scrollTo(0, 0); 在 setTimeout 中使用它,超时时间很少。
    settimeout(()=>{ window.scrollTo(0, 0); }, 10)
    希望这会有所帮助。

    回复
    0
  • 取消回复