導航至其他頁面時,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)
希望這會有所幫助。