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.  
     }   
    }); 

從邏輯上講,這應該工作。它在飛行中捕獲滾動位置,因此當您旋轉設備時,它應該將其重新定位到原來的位置。但我不能爲了我的生活找出爲什麼它不起作用。有沒有人有任何想法/建議?

+0

您是否使用響應式網格(或其他媒體查詢)?如果是這樣,那麼您的網頁在縱向模式下可能會更高,並且滾動位置不會直接適用於某一模式。 – 2014-10-17 18:31:36

+0

這只是默認的jQM listview插件。這裏沒有額外的複雜性。它只是試圖顯示一個簡單的列表。 至於滾動位置不同,它只是要接近。如果任何人有解決方法,我可以調整計算,我並不擔心這一點。 – gabaum10 2014-10-17 18:54:56

+0

此外,爲了記錄,我已向jQM團隊開放了一個問題:https://github.com/jquery/jquery-mobile/issues/7784。這實際上是一個內部錯誤,應該像這樣解決,但在此期間,我希望我們能夠找出解決方法。 – gabaum10 2014-10-17 18:57:42

回答

0

檢查你divsfirebug並確定哪個是具有滾動條的元素。有時會發生body,pageui-content設置爲100%高度,因此滾動條結束於ui-content div。如果是這樣,你可以通過直接訪問帶有滾動條的div的scrollTop()來解決它。

相關問題