簡體   English   中英

沒有 .pushstate 的無限回滾按鈕

[英]Infinite scroll back button without .pushstate

我有一個使用無限滾動系統加載我所有帖子的網站。 一切都很好,除了在 Chrome 中,有時在 Firefox 中,當用戶單擊帖子,然后單擊后退按鈕時,頁面完全從頂部重新加載,無需向下滾動到用戶的最后位置。 我研究了一些解決方案,其中一個是實現.pushState系統來更新 url,但希望將其保存為最后的手段。

我注意到像http://imgur.comhttp://buzzfeed.com這樣的網站都實現了無限滾動系統,但是當用戶單擊帖子然后單擊后退按鈕時,它會將它們返回到最后的位置不使用.pushState更新網址。 他們是怎么做到的呢? 謝謝,朱利安

這是一個基於以下 repo 的具有顯着點的示例。

  1. 我們實現pushState並使用唯一的uuid推送到窗口歷史對象。
  2. window.history.state.uuid現在可以作為我們可以查詢的內容。
  3. 在路由更改之前,我們可以獲取當前window.scrollY ,通過uuid將其存儲在緩存中。
  4. 同樣在路由更改( onpopstate )時,我們可以使用當前window.state.uuid查詢我們的緩存,檢索scrollY位置並調用window.scrollTo(scrollY)

https://github.com/DockYard/ember-router-scroll

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM