iScrol.js用法参考
8197 ワード
本文の原文のリンク:http://www.cnblogs.com/duanhuajian/archive/2013/04/08/3008323.html
iScroll 4 iScroll 。 webkit ( iPhone,iPad,Android )
。 , web position:absolute 、
。
,Android ( ),Apple one-finger div 。
iScroll ,iScroll 4 :
(1) (Pinch/Zoom)
(2) (Pull up/down to refresh)
(3)
(4)
(5)
:iScroll 4 iScroll 3 ,API 。 , API 。
iScroll 。 demo , , iScroll 。
iScroll , iScroll ( )。 iScroll
。
iScroll ,DOM , , 。
iScroll :
<div id="wrapper">
<ul>
<li></li>
.....
</ul>
</div>
,ul 。iScroll wrapper 。
【 】:
wrapper , , :
<div id="wrapper">
<div id="scroller">
<ul>
<li></li>
...
</ul>
<ul>
<li></li>
...
</ul>
</div>
</div>
,scroller , ul
iScroll , iScroll :
(1) onDOMContentLoaded
、 ,
<script src="iscroll.js"></script>
<script>
var myscroll;
function loaded(){
myscroll=new iScroll("wrapper");
}
window.addEventListener("DOMContentLoaded",loaded,false);
</script>
:myscroll ,
(2) onLoad
DOMContentLoaded DOM , , onLoad 。
<script src="iscroll.js"><script>
<script>
var myscroll;
function loaded(){
setTimeout(function(){
myscroll=new iScroll("wrapper");
},100 );
}
window.addEventListener("load",loaded,false);
</script>
iScroll ( ) 100ms , iScroll 。
(3)inline
js , , javascript , ?
<script src="iscroll.js"></script>
<div id="wrapper">
<ul>
<li></li>
...
</ul>
</div>
<script>
var myscroll=new iScroll("wrapper");
</script>
ready iScroll( jquery ready())。
iScroll
iScroll , :
<script>
var myscroll=new iScroll("wrapper",{hScrollbar:false, vScrollbar:false});
</script>
, 。 :
hScroll false true true
vScroll false true true
hScrollbar false
vScrollbar false
fixedScrollbar iOS , scroller , , true
scroller 。 Android true, iOS false
fadeScrollbar false
hideScrollbar true
bounce , true
momentum , true,
lockDirection false , true (up/down left/right)
'Pull to refresh' demo
Twitter Apple , 。 。
, "pull to refresh" iScroll 。 pull to refresh 。 pullDownAction() 。 ajax , DOM refresh 。 1 。 , , setTimeout 。
(pinch / zoom) 'Pull to refresh' demo
, 。 iScroll 4
。 , zoom true 。 。
iScroll 4 。 , :
var myScroll =new iScroll("wrapper",{zoom:true});
:
zoomMax , 4
【 】: 。 , img -webkit-transform:translate3d(0,0,0) , , , , 。
(snap and snap to element) 'Carousel' demo
SNAP 。 。
,
var myscroll=new iScroll("wrapper",{
snap:true,
momentum:false,
hScrollbar:false,
vScrollbar: false
});
snap 。 li 。
var myscroll=new iScroll("wrapper",{
snap:"li",
momentum:false,
hScrollbar:false,
vScrollbar:false
});
scroller li
(custom scrollbars)
iScroll 4 , css 。 class , :
var myscroll=new iScroll("wrapper",{
scrollbarClass: "myScrollbar"
});
, : 。 wrapper , 。
HTML :
<div class="myScrollbarV">
<div></div>
</div>
.myscrollbarV{
position:absolute;z-index:100;width:8px;bottom:7px;top:2px;right:1px;
}
.myScrollbarV > div {
position:absolute;
z-index:100;
width:100%;
/* The following is probably what you want to customize */
background:-webkit-gradient(linear, 0 0, 100% 0, from(#f00), to(#900));
border:1px solid #800;
-webkit-background-clip:padding-box;
-webkit-box-sizing:border-box;
-webkit-border-radius:4px;
-webkit-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
}
:
(1)refresh DOM ,
eg: setTimeout(function () { myScroll.refresh(); }, 0);
(2)iScroll scrollTo, scrollToElement scrollToPage javascript 。
scrollTo(x, y, time, relative): time x/y 。 myScroll.scrollTo(0, -100, 200) 200 Y 100 。 myScroll.scrollTo(0, 10, 200, true) 200 Y 10 。
scrollToElement(element, time): 。 myScroll.scrollToElement('li:nth-child(10)', 100) 100 10 li 。 1 CSS3 。
snapToPage(pageX, pageY, time): 200 1 2 (0 1 ,1 2 )。 SNAP 。
(3)detroy() myscroll
eg: myscroll.destroy();
myScroll = null;
iScroll
onScrol
DOM