iScroll.js是一款滑动插件, 使用iScroll.js可以让网页的一些滚动效果变得更平滑, 用户体验更好.
一般的使用就像网上所说的那样, 在引入了iscroll.js后, iscroll的最小使用粒度:
<div id="wrapper"> ???<ul> ???????<li>...</li> ???????<li>...</li> ???????... ???</ul></div>
var myScroll = new IScroll(‘#wrapper‘);
这样就能是ul上挂在滑动效果.
还可以配置一些参数如:
var myScroll = new IScroll(‘#wrapper‘, { mouseWheel: true, scrollbars: true });
我一般习惯在进行请求的时候把iscroll实例化, 例如
???var myScroll; ???function render_list(){ ???????$.getJSON(ApiUrl + ‘‘, {gc_id:gc_id}, function(result){ ???????var data = result.datas; ???????data.WapSiteUrl = WapSiteUrl; ???????var html = template.render(‘c-second-tmpl‘, data); ???????$("#wrapper").html(html); ???????myScroll = new IScroll(‘#wrapper‘, { mouseWheel: true, click: true }); ???}
使用iscroll时碰到的一些问题以及解决方案
ul上已经加载进效果, 但是没有任何反应.
解决:其他很多方案网上都能搜到了,我遇到的原因是我把<ul>
标签设置了height: 100%,导致无法滚动.在#wrapper上设置高度为100%是完全没问题的,但是里面挂在iscroll的标签上如果高度为100%, 就有可能会出现无法滚动的问题.有一些写的很复杂或者继承了很多css属性的wrapper和
<ul>
标签, 有可能因为属性太复杂而使得ul或者wrapper上的css属性没有清干净而无法生效...我现在就是遇到了这个问题, 我怀疑是css样式过多, 但是清除了之后也没有效果, 还要进一步排查...做一个有二级的面包屑样式, 两级都加载了iscroll, 但是在第一次点击二级ul的时候, 没有滚动效果出来, 必须在点击一次一级菜单(第2点里死活加载不上iscroll)后, 二级菜单才有滚动效果...初步怀疑是二级菜单在一开始没有初始化, 导致iscroll也没有一起加载...