1
2
3
4
5
6
7
8
9
|
<div id=
"wrapper"
>
//overflow:hidden;
<ul>
//只有第一個DOM結構(ul)被實例化,這個DOM能夠縱向或者橫向的滾動,
//多出的內容會被wrapper的樣式hidden。
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<div id=
"wrapper"
>
//overflow:hidden;
<div id=
"first"
>
//只有第一個DOM結構(ul)被實例化,這個DOM能夠縱向或者橫向的滾動,
//多出的內容會被wrapper的樣式hidden
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<ul>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
</div>
</div>
|
1
|
var
myScroll =
new
iScroll(
"wrapper"
);
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
HTML:
//HTML結構
<html >
<body>
...code...
</body>
//插入iscroll.js文件
<script type=
"text/javascript"
src=
"js/iscroll.js"
> </script >
//插入本頁面JS文件
<script type=
"text/javascript"
src=
"js/uw3c.js"
> </script >
</html>
JS:
//JS文件內容
var
myscroll;
function
iscroll(data){
//實例化iScroll
myscroll=
new
iScroll(
"wrapper"
);
pageData(data);
}
function
pageData(obj){
$(
"body"
).html(obj);
myscroll.refresh();
//當DOM結構發生變化的時候,須要刷新iScroll
}
iscroll(
"<div>pagedata</div>"
);
|
1
|
var
myscroll=
new
iScroll(
"wrapper"
,{hScrollbar:
false
});
|
1
2
3
4
5
6
|
var
opts = {
vScroll:
false
,
//禁止垂直滾動
snap:
true
,
//執行傳送帶效果
hScrollbar:
false
//隱藏水平方向上的滾動條
};
var
myscroll =
new
iScroll(
"wrapper"
,opts);
|
1
2
3
4
5
6
7
8
9
10
11
|
hScroll
false
禁止橫向滾動
true
橫向滾動 默認爲
true
vScroll
false
禁止垂直滾動
true
垂直滾動 默認爲
true
hScrollbar
false
隱藏水平方向上的滾動條
vScrollbar
false
隱藏垂直方向上的滾動條
fadeScrollbar
false
指定在無漸隱效果時隱藏滾動條
hideScrollbar 在沒有用戶交互時隱藏滾動條 默認爲
true
bounce 啓用或禁用邊界的反彈,默認爲
true
momentum 啓用或禁用慣性,默認爲
true
,
此參數在你想要保存資源的時候很是有用
lockDirection
false
取消拖動方向的鎖定,
true
拖動只能在一個方向上(up/down 或者left/right)
|
1
2
3
4
|
//在200毫秒的時間內,Y軸向上滾動100像素;
uw3c.scrollTo(0, -100, 200)
//在200毫秒的時間內,相對於當前位置,X軸向左滾動100像素;
uw3c.scrollTo(-100, 0, 200,
true
)
|
1
|
uw3c.refresh();
//刷新iScroll
|
1
2
3
4
5
6
7
8
|
onPosChange:
function
(x,y){
if
(y < -200){
//若是Y周向上滾動200像素,$("#uw3c")就顯示,不然就隱藏。
$(
"#uw3c"
).show();
}
else
{
$(
"#uw3c"
).hide();
}
}
|
1
2
3
4
|
//滾動結束後,執行的方法,滾動後會出現提示框alert("uw3c.com")
onScrollEnd:
function
(){
alert(
"uw3c.com"
);
}
|
截至到筆者發佈這篇文章時,經過樣式: javascript
IOS5 已經可以支持區域滾動了。可是andriod4 仍是不行...
iScroll 使用起來很簡單,首先你須要一個合理的DOM結構: html
其次是推薦的樣式: java
官方推薦這樣的結構,由於iscroll只能滾動wrapper裏的第一個子節點,或者說惟一一個子節點才能使得iscroll正確的生效。由於這個節點須要一個絕對定位的CSS屬性,更重要的是這個節點裏所包裹的內容有了一個統一的容器,咱們只須要計算以後修改這個容器的屬性值就能夠達到咱們滾動的效果。
iscroll 須要兩個參數,第一個很簡單就是外容器的id,第二個參數是一個參數對象。
經過這個對象能夠傳入iscroll的各項參數來配置iscroll。
他的參數基本分爲四個部分
web
如下由筆者整理的iScroll參數以及其表明的意思: 瀏覽器
checkDOMChanges 這個不是十分靠得住,由於他目前是輪詢檢測offsetWidth、offsetHeight,而後纔去調自身的refresh 從新計算滾動區域,可是有時候只檢測這個不是很準.. app
經過scrollbar這些參數能夠配置iscroll的滾動條,經過scrollbarClass能夠本身定義一套滾動條的樣式。 webapp
這個Zoom我以爲比較好用,對於一個固定顯示圖片區域的相似應用,能夠很是簡單的作到固定滾動,包括兩指放大的應用。
wheelAction 這個參數是給PC的鼠標滾動定義的,能夠定義爲滾動鼠標滾輪放大。 ide
經過了解以上參數,你能夠很是容易的配置本身的iscroll 應用:
你能夠經過onScrollEnd 事件回調在結束滾動後執行一段你本身的代碼
你也能夠簡單的新建一個能夠經過雙觸放大的固定滾動區域。
你也能夠什麼都不作,只是簡單的約定碰到邊界是否反彈,等等。 spa
固然,在使用時,若是對建立的iscroll 實例保存引用會有不少好處:
你能夠在內容改變時,DOM結構發生改變時調用 myscroll.refresh() 來從新計算固定滾動區域的內容高度,從而使得你的iscroll工做正常。
你也能夠在你的應用結束時,用過這個引用調用destroy方法來,銷燬這個iscroll 實例
等等....
固然,iscroll提供的Api也是很是豐富,因此咱們能夠經過使用iscroll來作不少webapp的應用,下一篇文章我將會主要介紹一下iscroll的公用調用方法,以及參數的控制。 插件