我正在用PHP/Zend Framework和Facebook JavaScript編寫遊戲。該遊戲板顯示在一個滾動窗口中。要查看整個遊戲板,用戶必須滾動。遊戲的每一步都會導致頁面刷新,因此當用戶移動到另一個步驟時,它們的滾動位置將丟失,窗口將返回到默認位置。我想知道是否有辦法自動讓該滾動窗口返回到頁面刷新前的位置,以便用戶不必滾動回到原來的位置?謝謝!需要一種方法來在頁面刷新後返回滾動窗口位置
回答
如果你正在創建一個基於鏈接的遊戲,我會使用AJAX將你的點擊數據發送到你的服務器,處理它,然後將它返回給用戶而不刷新頁面。
這將防止你不得不使用JS在頁面上滾動,它也會使玩遊戲的玩家更快,更愉快。
將該位置保存在onunload(或每個滾動事件之後)Window.name或cookie中,然後在頁面加載時滾動到該點。
但是,Ajax解決方案是一種更好的方法。
我試過這個解決方案,但我無法使它工作,因爲我使用的是Facebook JS,我沒有訪問
標籤,所以我不能實現onload/onunload。 我發現了onload的解決方法,但不是onunload。我嘗試使用setInterval()更新當前滾動位置的cookie,但後來我也發現FB禁止訪問cookie): Ajax將涉及重寫我的大部分應用程序,而我根本沒有時間。 我確實考慮過使用setInterval()和ajax調用每隔幾秒左右發送一次滾動條到後端。這似乎... – 2009-09-17 19:54:02喜歡它會淹沒服務器,每隔1-5秒從每個用戶獲取這些ajax調用? – 2009-09-17 19:55:22
真的取決於服務器...您可以在腳本標籤內動態添加事件。在行上的東西:body.onload = f; // f是一個函數。當然,你需要弄清楚正確的語法。 – 2009-09-17 20:55:09
使用<a name="game">
並刷新爲gamePage.html#game
但是,這將涉及到添加一個錨到每個可點擊的元素上我假設是一個'平鋪'的遊戲板。那將會是很多主播的問題。 – BraedenP 2009-09-17 02:44:44
PHP可以在所需的位置添加一個錨點。 – 2009-09-17 03:05:38
否....應在每次滾動事件之後創建錨點。聽起來很麻煩,我不認爲你可以改變頁面的網址,而不會導致頁面刷新。 – 2009-09-17 03:16:36
- 1. Javascript窗口位置刷新頁面
- 2. 刷新div後記憶窗口滾動位置
- 3. 需要一種方法來檢測頁面回發
- 4. 需要jQuery Fancybox來刷新父窗口
- 5. 需要一種方法來爲接口
- 6. 當前位置需要jQuery的頁面刷新移動
- 7. GTK + - 刷新滾動窗口
- 8. 阻止網頁從維護頁面滾動位置在刷新
- 9. 需要刷新/重定向頁面後,PHP後更新頁面
- 10. 強制頁面滾動位置在HTML頁面刷新頁面頂部
- 11. Telerik窗口在每次頁面刷新後自動打開
- 12. mobile.changepage需要頁面刷新
- 13. 頁面刷新返回到上一頁
- 14. 在頁面刷新時保持div標籤的滾動位置
- 15. 需要手動刷新頁面
- 16. JQuery事件滾動到位置...重置頁面刷新
- 17. 在窗口響應後刷新一個php頁面
- 18. 嘲笑一種方法,返回頁面接口
- 19. 護滾動位置刷新
- 20. 後需要垂直頁面滾動
- 21. Jquery .load需要頁面刷新,但也返回false - 幫助
- 22. 在頁面刷新本地存儲返回上woocomerce頁面刷新後,空值
- 23. 刷新頁面並打開新窗口
- 24. JSF - 基本頁面刷新後自動關閉彈出窗口
- 25. jScroll在返回頁面時保存滾動位置
- 26. 刷新頁面並保持滾動位置
- 27. KendoUI窗口頁面滾動固定位置
- 28. 頁面完全加載時的窗口滾動位置
- 29. 有沒有辦法維護滾動條的位置在頁面刷新(無Javascript)?
- 30. html/js:返回上一頁在同一個滾動位置
+1。頁面自動滾動令人難以置信的煩人 – 2009-09-17 03:06:09
我聽到雅,我完全同意。問題是,我對AJAX非常陌生。我在我的應用程序中有一些AJAX代碼,但是在AJAX中編寫整個應用程序似乎會導致這個巨大的前端應用程序頻繁地發生後端調用。我很熟悉在Zend Framework中組織我的應用程序,但我不知道如何組織像這樣的大型前端應用程序,因此我堅持我所知道的。 – 2009-09-17 03:47:15