3
我使用jQuery-mobile
來顯示數據列表。該列表可以相當高,比如〜3000px。我在Samsung G S5
上看到的問題是,當我旋轉手機時,列表視圖失去了滾動位置並位於頂部。jQuery Mobile - 保持設備方向更改的滾動位置?
我試着做以下,但不能得到它的工作:
// This block is to handle the device rotating when viewing the list
$(window).on('scrollstop', function() {
if ($.mobile.activePage.attr('id') == 'pageBeingViewed') {
self.currentScroll = $(window).scrollTop();
}
});
$(window).on("orientationchange", function (event) {
if ($.mobile.activePage.attr('id') == 'pageBeingViewed') {
console.log('Scroll Pos:'+self.currentScroll);
$(window).scrollTop(self.currentScroll); // also tried using the jQM silent scroll method here as well. No luck.
}
});
從邏輯上講,這應該工作。它在飛行中捕獲滾動位置,因此當您旋轉設備時,它應該將其重新定位到原來的位置。但我不能爲了我的生活找出爲什麼它不起作用。有沒有人有任何想法/建議?
您是否使用響應式網格(或其他媒體查詢)?如果是這樣,那麼您的網頁在縱向模式下可能會更高,並且滾動位置不會直接適用於某一模式。 – 2014-10-17 18:31:36
這只是默認的jQM listview插件。這裏沒有額外的複雜性。它只是試圖顯示一個簡單的列表。 至於滾動位置不同,它只是要接近。如果任何人有解決方法,我可以調整計算,我並不擔心這一點。 – gabaum10 2014-10-17 18:54:56
此外,爲了記錄,我已向jQM團隊開放了一個問題:https://github.com/jquery/jquery-mobile/issues/7784。這實際上是一個內部錯誤,應該像這樣解決,但在此期間,我希望我們能夠找出解決方法。 – gabaum10 2014-10-17 18:57:42