jquery-mobile的頁面跳轉和iscroll之間的兼容解決方法

有一項目須要用到滾動效果,最後選擇了iscroll插件,代碼寫好後chrome測試一切正常(直接查看用到滾動效果的頁面如下統稱當前頁面),運行APP應用一步步跳轉到當前頁面的時候,滾動效果和滾動條等死活出不來,而後各類調試,各類刪減JS,各類調整代碼,依然不行,真是噁心的要死。最後通過測試發現,若是當前頁面作爲應用的第一個頁面展現出來的時候滾動效果就會OK。而經過JQM的頁面跳轉也就是jQuery.mobile.changePage()到達當前頁面的時候,iscroll效果就不起做用了。由此能夠想象到,在當前頁面還未初始化即還未展示的時候,滾動區域DOM應該是因爲某種緣由並不適用於iscroll的初始化條件(多是高度和實際高度不匹配等等緣由吧,具體不太清楚)。chrome

解決辦法一:
能夠在滾動區域內容發生變化以後來初始化iscroll滾動對象,因此咱們能夠在changePage()到當前頁面以後來建立這個對象
app

$(".selector").on("pagecreate",function(){  
    function loaded() {
        myScroll = new iScroll('wrapper',{snap:false,checkDOMChange:true,vScrollbar:true});
    }
    setTimeout(loaded, 20);
})

解決方法二:
若是以前已經初始化過iscroll對象,咱們能夠用iscroll的refresh方法來刷新次對象測試

$(".selector").on("pagecreate",function(){  
    setTimeout(function(){      
        myScroll.refresh();
    }, 100);
})
相關文章
相關標籤/搜索