簡體   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