IScroll.js插件是兼容所有移動(dòng)端滾動(dòng)條事件的插件哼拔,在某些安卓機(jī)中,我們無法通過
overflo:scroll
這個(gè)css屬性來出現(xiàn)滾動(dòng)條箱熬;它也可以非常好的在一個(gè)容器元素中處理滾動(dòng);
注意
在使用IScroll.js必須要有3層元素嵌套,如:
<div class="food-left">
<ul class="food-nav">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
最外層的food-left
必須要有兩個(gè)css樣式:position:relative;
和overflow:hidden
。
初始化
IScroll.js給我們暴露了一個(gè)IScroll構(gòu)造函數(shù);
如下仗谆,我們進(jìn)行了初始化
<script type="text/javascript">
leftScroll = new IScroll(".food-left");
</script>
構(gòu)造函數(shù)中傳入的實(shí)參,與ES6新增的querySelector
參數(shù)一致淑履;其實(shí)querySelector
就與我們的jQuery選擇器使用方式是一樣的隶垮;
注意:我們必須在DOM結(jié)構(gòu)加載完畢后才能初始化,否則會(huì)無效秘噪。
設(shè)置
IScroll.js允許我們傳入第二個(gè)參數(shù)來配置滾動(dòng)事件的屬性;
leftScroll = new IScroll(".food-left", {
scrollbars: true,
bounce: false,
mouseWheel:true,
click:true
});
-
滾動(dòng)條
scrollbars: true
是否顯示滾動(dòng)條狸吞。默認(rèn)為false;
fadeScrollbars:true
滾動(dòng)條淡入淡出效果,當(dāng)然前提是你滾動(dòng)條顯示了。默認(rèn)為false;
interactiveScrollbars
是否拖動(dòng)滾動(dòng)條指煎。默認(rèn)為false;
resizeScrollbars
滾動(dòng)條的長(zhǎng)度是按照比例設(shè)置的蹋偏,如果想要固定尺寸,可以設(shè)置為flase;默認(rèn)為true;
bounce: false
滾動(dòng)到達(dá)容器邊界時(shí)是否執(zhí)行反彈動(dòng)畫至壤。默認(rèn)為true;
mouseWheel:true
是否顯示啟用鼠標(biāo)滾動(dòng);默認(rèn)為false;
invertWheelDirection
激活鼠標(biāo)滾動(dòng)后是否啟用反向滾動(dòng);默認(rèn)為false;
click:true
iScroll禁止默認(rèn)鼠標(biāo)的點(diǎn)擊行為威始,如果要使用設(shè)置true;默認(rèn)為false;
disableMouse、disablePointer崇渗、options.disableTouch
IScrol默認(rèn)監(jiān)聽所有的指針事件字逗,如果確認(rèn)項(xiàng)目定位的平臺(tái),可以將不使用的效果禁用宅广,減少資源占用葫掉;默認(rèn)為false;
startX、startY
設(shè)置滾動(dòng)條初始偏移位置跟狱;默認(rèn)為無;
方法
IScroll.js也給我們提供一些方便的方法,當(dāng)然都是實(shí)例對(duì)象下的俭厚;
rightScroll.scrollToElement(el, time, offsetX, offsetY, easing)
滾動(dòng)到傳入元素的位置,必須是原生DOM對(duì)象驶臊;然后是滾動(dòng)的時(shí)間挪挤;scrollTo(x, y, time, easing)
可以滾動(dòng)到任意的位置,默認(rèn)位置是0关翎,如果要移動(dòng)需要設(shè)置負(fù)數(shù)扛门;
事例: