有一项目须要用到滚动效果,最后选择了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); })