有一項目須要用到滾動效果,最後選擇了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); })