一、javascript
最佳的HTML結構以下:php
<div id="wrapper">
<ul>
<li>...</li>
<li>...</li> ... </ul>
</div>
iScroll做用於滾動區域的外層。在上面的例子中,UL
元素能進行滾動。只有容器元素的第一個子元素能進行滾動,其餘子元素徹底被忽略。css
最基本的腳本初始化的方式以下:html
<script type="text/javascript">
var myScroll = new IScroll('#wrapper'); </script>
第一個參數能夠是滾動容器元素的DOM選擇器字符串,也能夠是滾動容器元素的引用對象。下面是一個有效的語法:java
var wrapper = document.getElementById('wrapper');
var myScroll = new IScroll(wrapper);
因此基本上你要麼直接傳遞元素,要麼傳遞一個querySelector
字符串。所以可使用css名稱代替ID去選擇一個滾動器容器,以下:git
var myScroll = new IScroll('.wrapper');
注意,iScroll使用的是querySelector 而不是 querySelectorAll,因此iScroll只會做用到選擇器選中元素的第一個。若是你須要對多個對象使用iScroll,你須要構建本身的循環機制。github
當DOM準備完成後iScroll須要被初始化。最保險的方式是在window的onload
事件中啓動它。在DOMContentLoaded
事件中或者inline initialization中作也能夠,須要記住的是腳本須要知道滾動區域的高度和寬度。若是你有一些圖片在滾動區域致使不能立馬獲取區域的高度和寬度,iScroll的滾動尺寸有可能會錯誤。web
爲滾動起容器增長position:relative
或者absolute
樣式。這將解決大多數滾動器容器大小計算不正確的問題。ajax
綜上所述,最小的iScroll配置以下:ubuntu
<head> ... <script type="text/javascript" src="iscroll.js"></script>
<script type="text/javascript">
var myScroll; function loaded() { myScroll = new IScroll('#wrapper'); } </script>
</head> ... <body onload="loaded()">
<div id="wrapper">
<ul>
<li>...</li>
<li>...</li> ... </ul>
</div>
若是你有一個複雜的DOM結構,最好在onload事件以後適當的延遲,再去初始化iScroll。最好給瀏覽器100或者200毫秒的間隙再去初始化iScroll。
在iScroll初始化階段能夠經過構造函數的第二個參數配置它。
var myScroll = new IScroll('#wrapper', {
mouseWheel: true,
scrollbars: true
});
上面的例子示例了在iScroll初始化時開啓鼠標滾輪支持和滾動條支持。
在初始化後你能夠經過options
對象訪問標準化值。例如:
console.dir(myScroll.options);
上面的語句將返回myScroll實例的配置信息。所謂的標準化意味着若是你設置useTransform:true,可是瀏覽器並不支持CSS transforms,那麼useTransform屬性值將爲false。
當滾動器到達容器邊界時他將執行一個小反彈動畫。在老的或者性能低的設備上禁用反彈對實現平滑的滾動有幫助。
默認值:true
爲了重寫原生滾動條,iScroll禁止了一些默認的瀏覽器行爲,好比鼠標的點擊。若是你想你的應用程序響應click事件,那麼該設置次屬性爲true
。請注意,建議使用自定義的tap
事件來代替它(見下面)。
默認屬性:false
默認狀況下,iScroll監聽全部的指針事件,而且對這些事件中第一個被觸發的作出反應。這看上去是浪費資源,可是在大量的瀏覽器/設備上兼容,特定的事件偵測證實是無效的,因此listen-to-all是一個安全的作法。
若是你有一種設備偵測的內部機制,或者你知道你的腳本將在什麼地方運行,你能夠把你不須要的事件禁用(鼠標,指針或者觸摸事件)。
下面的例子是禁用鼠標和指針事件:
var myScroll = new IScroll('#wrapper', { disableMouse: true, disablePointer: true });
默認值:false
有些時候你想保留原生縱向的滾動條但想爲橫向滾動條增長iScroll功能(好比走馬燈)。設置這個屬性爲true
而且iScroll區域只將影響橫向滾動,縱向滾動將滾動整個頁面。
在移動設備上訪問event passthrough demo。注意,這個值也能夠設置爲'horizontal'
,其做用和上面介紹的相反(橫向滾動條保持原生,縱向滾動條使用iScroll)。
此屬性針對於兩個兩個緯度的滾動條(當你須要橫向和縱向滾動條)。一般狀況下你開始滾動一個方向上的滾動條,另一個方向上會被鎖定不動。有些時候,你須要無約束的移動(橫向和縱向能夠同時響應),在這樣的狀況下此屬性須要設置爲true
。請參考 2D scroll demo。
默認值:false
此屬性爲true
時激活鍵盤(和遠程控制)綁定。請參考下面的Key bindings內容。
默認值:false
當鼠標滾輪支持激活後,在有些狀況下須要反轉滾動的方向。(好比,鼠標滾輪向下滾動條向上,反之亦然)。
默認值:false
在用戶快速觸摸屏幕時,你能夠開/關勢能動畫。關閉此功能將大幅度提高性能。
默認值:true
偵聽鼠標滾輪事件。
默認值:false
當事件觸發時是否執行preventDefault()
。此屬性應該設置爲true
,除非你真的知道你須要怎麼作。
請參考Advanced features中的preventDefaultException
,能夠獲取更多控制preventDefault行爲的信息。
Default: true
默認值:true
是否顯示爲默認的滾動條。更多信息請查看Scrollbar
默認值:false
默認狀況下只有縱向滾動條可使用。若是你須要使用橫向滾動條,須要將scrollX
屬性值設置爲 true
。請參考示例horizontal demo。
也能夠參考freeScroll選項。
默認值:scrollX: false
,scrollY: true
注意屬性 scrollX/Y: true
與overflow: auto
有相同的效果。設置一個方向上的值爲 false
能夠節省一些檢測的時間和CPU的計算週期。
默認狀況下iScroll從0, 0
(top left)位置開始,經過此屬性可讓滾動條從不一樣的位置開始滾動。
默認值:0
設置此屬性爲true
,當滾動區域被點擊或者觸摸但並無滾動時,可讓iScroll拋出一個自定義的tap
事件。
這是處理與能夠點擊元素之間的用戶交互的建議方式。偵聽tap
事件和偵聽標準事件的方式一致。示例以下:
element.addEventListener('tap', doSomething, false); \\ Native $('#element').on('tap', doSomething); \\ jQuery
你能夠經過傳遞一個字符串來自定義事件名稱。好比:
tap: 'myCustomTapEvent'
在這個示例裏你應該偵聽名爲myCustomTapEvent
的事件。
默認值:false
滾動條不僅是像名字所表達的意義同樣,在內部它們是做爲indicators的引用。
一個指示器偵聽滾動條的位置而且現實它在全局中的位置,可是它能夠作更多的事情。
先從最基本的開始。
正如咱們在基本功能介紹中提到的,激活滾動條只須要作一件事情,這件事情就是:
var myScroll = new IScroll('#wrapper', { scrollbars: true });
固然這個默認的行爲是能夠定製的。
不想使用滾動條淡入淡出方式時,須要設置此屬性爲false
以便節省資源。
默認值:false
此屬性可讓滾動條能拖動,用戶能夠與之交互。
默認值:false
滾動條尺寸改變基於容器和滾動區域的寬/高之間的比例。此屬性設置爲false
讓滾動條固定大小。這可能有助於自定義滾動條樣式(以下)。
默認值:true
當在滾動區域外面滾動時滾動條是否能夠收縮到較小的尺寸。
有效的值爲:'clip'
和 'scale'
。
'clip'
是移動指示器到它容器的外面,效果就是滾動條收縮起來,簡單的移動到屏幕之外的區域。屬性設置爲此值後將大大的提高整個iScroll的性能。
值'scale'
關閉屬性useTransition
,以後全部的動畫效果將使用requestAnimationFrame
實現。指示器實際上有各類尺寸,而且最終的效果最好。
默認值:false
注意改變大小不是在GPU上執行的,因此'scale' 是在CPU上執行。
若是你的應用程序將在多種設備上運行,我建議你使用選項'scale'
,或者設置'clip'
爲 false
(例如:在較老的設備上應該設置爲'clip'
,而在桌面瀏覽器上應設置爲'scale'
)。
請參考 示例:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
6 <title>iScroll demo: scrollbars</title>
7 <script type="text/javascript" src="js/iscroll.js"></script>
8 <script type="text/javascript">
9 var myScroll; 10 function loaded () { 11 myScroll = new IScroll('#wrapper', { 12 scrollbars: true, 13 mouseWheel: true, 14 interactiveScrollbars: true, 15 shrinkScrollbars: 'scale', 16 fadeScrollbars: true
17 }); 18 } 19 document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false); 20 </script>
21 <style type="text/css">
22 * {
23 -webkit-box-sizing: border-box;
24 -moz-box-sizing: border-box;
25 box-sizing: border-box;
26 }
27 html {
28 -ms-touch-action: none;
29 }
30 body,ul,li {
31 padding: 0;
32 margin: 0;
33 border: 0;
34 }
35 body {
36 font-size: 12px;
37 font-family: ubuntu, helvetica, arial;
38 overflow: hidden;
39 }
40 #header {
41 position: absolute;
42 z-index: 2;
43 top: 0;
44 left: 0;
45 width: 100%;
46 height: 45px;
47 line-height: 45px;
48 background: #CD235C;
49 padding: 0;
50 color: #eee;
51 font-size: 20px;
52 text-align: center;
53 font-weight: bold;
54 }
55 #footer {
56 position: absolute;
57 z-index: 2;
58 bottom: 0;
59 left: 0;
60 width: 100%;
61 height: 48px;
62 background: #444;
63 padding: 0;
64 border-top: 1px solid #444;
65 }
66 #wrapper {
67 position: absolute;
68 z-index: 1;
69 top: 45px;
70 bottom: 48px;
71 left: 0;
72 width: 100%;
73 background: #ccc;
74 overflow: hidden;
75 }
76 #scroller {
77 position: absolute;
78 z-index: 1;
79 -webkit-tap-highlight-color: rgba(0,0,0,0);
80 width: 100%;
81 -webkit-transform: translateZ(0);
82 -moz-transform: translateZ(0);
83 -ms-transform: translateZ(0);
84 -o-transform: translateZ(0);
85 transform: translateZ(0);
86 -webkit-touch-callout: none;
87 -webkit-user-select: none;
88 -moz-user-select: none;
89 -ms-user-select: none;
90 user-select: none;
91 -webkit-text-size-adjust: none;
92 -moz-text-size-adjust: none;
93 -ms-text-size-adjust: none;
94 -o-text-size-adjust: none;
95 text-size-adjust: none;
96 }
97 #scroller ul {
98 list-style: none;
99 padding: 0;
100 margin: 0;
101 width: 100%;
102 text-align: left;
103 }
104 #scroller li {
105 padding: 0 10px;
106 height: 40px;
107 line-height: 40px;
108 border-bottom: 1px solid #ccc;
109 border-top: 1px solid #fff;
110 background-color: #fafafa;
111 font-size: 14px;
112 }
113 </style>
114 </head>
115 <body onload="loaded()">
116 <div id="header">iScroll</div>
117 <div id="wrapper">
118 <div id="scroller">
119 <ul>
120 <li>Pretty row 1</li>
121 <li>Pretty row 2</li>
122 <li>Pretty row 3</li>
123 <li>Pretty row 4</li>
124 <li>Pretty row 5</li>
125 <li>Pretty row 6</li>
126 <li>Pretty row 7</li>
127 <li>Pretty row 8</li>
128 <li>Pretty row 9</li>
129 <li>Pretty row 10</li>
130 <li>Pretty row 11</li>
131 <li>Pretty row 12</li>
132 <li>Pretty row 13</li>
133 <li>Pretty row 14</li>
134 <li>Pretty row 15</li>
135 <li>Pretty row 16</li>
136 <li>Pretty row 17</li>
137 <li>Pretty row 18</li>
138 <li>Pretty row 19</li>
139 <li>Pretty row 20</li>
140 <li>Pretty row 21</li>
141 <li>Pretty row 22</li>
142 <li>Pretty row 23</li>
143 <li>Pretty row 24</li>
144 <li>Pretty row 25</li>
145 <li>Pretty row 26</li>
146 <li>Pretty row 27</li>
147 <li>Pretty row 28</li>
148 <li>Pretty row 29</li>
149 <li>Pretty row 30</li>
150 <li>Pretty row 31</li>
151 <li>Pretty row 32</li>
152 <li>Pretty row 33</li>
153 <li>Pretty row 34</li>
154 <li>Pretty row 35</li>
155 <li>Pretty row 36</li>
156 <li>Pretty row 37</li>
157 <li>Pretty row 38</li>
158 <li>Pretty row 39</li>
159 <li>Pretty row 40</li>
160 <li>Pretty row 41</li>
161 <li>Pretty row 42</li>
162 <li>Pretty row 43</li>
163 <li>Pretty row 44</li>
164 <li>Pretty row 45</li>
165 <li>Pretty row 46</li>
166 <li>Pretty row 47</li>
167 <li>Pretty row 48</li>
168 <li>Pretty row 49</li>
169 <li>Pretty row 50</li>
170 </ul>
171 </div>
172 </div>
173 <div id="footer"></div>
174 </body>
175 </html>
若是你不喜歡默認的滾動條樣式,並且你認爲你能夠作的更好,你能夠自定義滾動條樣式。第一步就是設置選項scrollbars
的值爲'custom'
:
var myScroll = new IScroll('#wrapper', { scrollbars: 'custom' });
使用下面的CSS類能夠簡單的改變滾動條樣式。
自定義滾動條樣式示例:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
6 <title>iScroll demo: styled scrollbars</title>
7 <script type="text/javascript" src="js/iscroll.js"></script>
8 <script type="text/javascript">
9 var myScroll; 10 function loaded () { 11 myScroll = new IScroll('#wrapper', { 12 scrollX: true, 13 scrollbars: 'custom'
14 }); 15 } 16 document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false); 17 </script>
18 <style type="text/css">
19 /* Styled scrollbars */
20 .iScrollHorizontalScrollbar {
21 position: absolute;
22 z-index: 9999;
23 height: 16px;
24 left: 2px;
25 right: 2px;
26 bottom: 2px;
27 overflow: hidden;
28 }
29 .iScrollHorizontalScrollbar.iScrollBothScrollbars {
30 right: 18px;
31 }
32 .iScrollVerticalScrollbar {
33 position: absolute;
34 z-index: 9999;
35 width: 16px;
36 bottom: 2px;
37 top: 2px;
38 right: 2px;
39 overflow: hidden;
40 }
41 .iScrollVerticalScrollbar.iScrollBothScrollbars {
42 bottom: 18px;
43 }
44 .iScrollIndicator {
45 position: absolute;
46 background: #cc3f6e;
47 border-width: 1px;
48 border-style: solid;
49 border-color: #EB97B4 #7C2845 #7C2845 #EB97B4;
50 border-radius: 8px;
51 }
52 .iScrollHorizontalScrollbar .iScrollIndicator {
53 height: 100%;
54 background: -moz-linear-gradient(left, #cc3f6e 0%, #93004e 100%);
55 background: -webkit-linear-gradient(left, #cc3f6e 0%,#93004e 100%);
56 background: -o-linear-gradient(left, #cc3f6e 0%,#93004e 100%);
57 background: -ms-linear-gradient(left, #cc3f6e 0%,#93004e 100%);
58 background: linear-gradient(to right, #cc3f6e 0%,#93004e 100%);
59 }
60 .iScrollVerticalScrollbar .iScrollIndicator {
61 width: 100%;
62 background: -moz-linear-gradient(top, #cc3f6e 0%, #93004e 100%);
63 background: -webkit-linear-gradient(top, #cc3f6e 0%,#93004e 100%);
64 background: -o-linear-gradient(top, #cc3f6e 0%,#93004e 100%);
65 background: -ms-linear-gradient(top, #cc3f6e 0%,#93004e 100%);
66 background: linear-gradient(to bottom, #cc3f6e 0%,#93004e 100%);
67 }
68 /* end */
69 * {
70 -webkit-box-sizing: border-box;
71 -moz-box-sizing: border-box;
72 box-sizing: border-box;
73 }
74 html {
75 -ms-touch-action: none;
76 }
77 body,ul,li {
78 padding: 0;
79 margin: 0;
80 border: 0;
81 }
82 body {
83 font-size: 12px;
84 font-family: ubuntu, helvetica, arial;
85 overflow: hidden;
86 }
87 #header {
88 position: absolute;
89 z-index: 2;
90 top: 0;
91 left: 0;
92 width: 100%;
93 height: 45px;
94 line-height: 45px;
95 background: #CD235C;
96 padding: 0;
97 color: #eee;
98 font-size: 20px;
99 text-align: center;
100 font-weight: bold;
101 }
102 #footer {
103 position: absolute;
104 z-index: 2;
105 bottom: 0;
106 left: 0;
107 width: 100%;
108 height: 48px;
109 background: #444;
110 padding: 0;
111 border-top: 1px solid #444;
112 }
113 #wrapper {
114 position: absolute;
115 z-index: 1;
116 top: 45px;
117 bottom: 48px;
118 left: 0;
119 width: 100%;
120 background: #ccc;
121 overflow: hidden;
122 }
123 #scroller {
124 position: absolute;
125 z-index: 1;
126 -webkit-tap-highlight-color: rgba(0,0,0,0);
127 width: 2000px;
128 -webkit-transform: translateZ(0);
129 -moz-transform: translateZ(0);
130 -ms-transform: translateZ(0);
131 -o-transform: translateZ(0);
132 transform: translateZ(0);
133 -webkit-touch-callout: none;
134 -webkit-user-select: none;
135 -moz-user-select: none;
136 -ms-user-select: none;
137 user-select: none;
138 -webkit-text-size-adjust: none;
139 -moz-text-size-adjust: none;
140 -ms-text-size-adjust: none;
141 -o-text-size-adjust: none;
142 text-size-adjust: none;
143 }
144 #scroller ul {
145 list-style: none;
146 padding: 0;
147 margin: 0;
148 width: 100%;
149 text-align: left;
150 }
151 #scroller li {
152 padding: 0 10px;
153 height: 40px;
154 line-height: 40px;
155 border-bottom: 1px solid #ccc;
156 border-top: 1px solid #fff;
157 background-color: #fafafa;
158 font-size: 14px;
159 }
160 </style>
161 </head>
162 <body onload="loaded()">
163 <div id="header">iScroll</div>
164 <div id="wrapper">
165 <div id="scroller">
166 <ul>
167 <li>Pretty row 1</li>
168 <li>Pretty row 2</li>
169 <li>Pretty row 3</li>
170 <li>Pretty row 4</li>
171 <li>Pretty row 5</li>
172 <li>Pretty row 6</li>
173 <li>Pretty row 7</li>
174 <li>Pretty row 8</li>
175 <li>Pretty row 9</li>
176 <li>Pretty row 10</li>
177 <li>Pretty row 11</li>
178 <li>Pretty row 12</li>
179 <li>Pretty row 13</li>
180 <li>Pretty row 14</li>
181 <li>Pretty row 15</li>
182 <li>Pretty row 16</li>
183 <li>Pretty row 17</li>
184 <li>Pretty row 18</li>
185 <li>Pretty row 19</li>
186 <li>Pretty row 20</li>
187 <li>Pretty row 21</li>
188 <li>Pretty row 22</li>
189 <li>Pretty row 23</li>
190 <li>Pretty row 24</li>
191 <li>Pretty row 25</li>
192 <li>Pretty row 26</li>
193 <li>Pretty row 27</li>
194 <li>Pretty row 28</li>
195 <li>Pretty row 29</li>
196 <li>Pretty row 30</li>
197 <li>Pretty row 31</li>
198 <li>Pretty row 32</li>
199 <li>Pretty row 33</li>
200 <li>Pretty row 34</li>
201 <li>Pretty row 35</li>
202 <li>Pretty row 36</li>
203 <li>Pretty row 37</li>
204 <li>Pretty row 38</li>
205 <li>Pretty row 39</li>
206 <li>Pretty row 40</li>
207 <li>Pretty row 41</li>
208 <li>Pretty row 42</li>
209 <li>Pretty row 43</li>
210 <li>Pretty row 44</li>
211 <li>Pretty row 45</li>
212 <li>Pretty row 46</li>
213 <li>Pretty row 47</li>
214 <li>Pretty row 48</li>
215 <li>Pretty row 49</li>
216 <li>Pretty row 50</li>
217 </ul>
218 </div>
219 </div>
220 <div id="footer"></div>
221 </body>
222 </html>
若是你設置resizeScrollbars: false,滾動條將是固定大小,不然它將基於滾動區域的尺寸變化。
請接着閱讀接下來的內容。
iScroll集成智能緩存系統,容許處理的使用(重用)一羣元素幾乎無限數量的數據。
無限滾動開發的早期階段,儘管它能夠被認爲是穩定的,但它尚未準備好被普遍使用。
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0"> 6 <title>iScroll demo: infinite scrolling</title> 7 <script type="text/javascript" src="../../build/iscroll-infinite.js"></script> 8 <script type="text/javascript"> 9 /****************************************************************************** 10 * 11 * For the sake of keeping the script dependecy free I'm including a custom 12 * AJAX function. You should probably use a third party plugin 13 * 14 */ 15 function ajax (url, parms) { 16 parms = parms || {}; 17 var req = new XMLHttpRequest(), 18 post = parms.post || null, 19 callback = parms.callback || null, 20 timeout = parms.timeout || null; 21 22 req.onreadystatechange = function () { 23 if ( req.readyState != 4 ) return; 24 25 // Error 26 if ( req.status != 200 && req.status != 304 ) { 27 if ( callback ) callback(false); 28 return; 29 } 30 31 if ( callback ) callback(req.responseText); 32 }; 33 34 if ( post ) { 35 req.open('POST', url, true); 36 req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 37 } else { 38 req.open('GET', url, true); 39 } 40 41 req.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 42 43 req.send(post); 44 45 if ( timeout ) { 46 setTimeout(function () { 47 req.onreadystatechange = function () {}; 48 req.abort(); 49 if ( callback ) callback(false); 50 }, timeout); 51 } 52 } 53 /* 54 *****************************************************************************/ 55 56 var myScroll; 57 58 function loaded () { 59 myScroll = new IScroll('#wrapper', { 60 mouseWheel: true, 61 infiniteElements: '#scroller .row', 62 //infiniteLimit: 2000, 63 dataset: requestData, 64 dataFiller: updateContent, 65 cacheSize: 1000 66 }); 67 } 68 69 function requestData (start, count) { 70 ajax('dataset.php?start=' + +start + '&count=' + +count, { 71 callback: function (data) { 72 data = JSON.parse(data); 73 myScroll.updateCache(start, data); 74 } 75 }); 76 } 77 78 function updateContent (el, data) { 79 el.innerHTML = data; 80 } 81 82 document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false); 83 84 </script> 85 86 <style type="text/css"> 87 * { 88 -webkit-box-sizing: border-box; 89 -moz-box-sizing: border-box; 90 box-sizing: border-box; 91 } 92 93 html { 94 -ms-touch-action: none; 95 } 96 97 body,ul,li { 98 padding: 0; 99 margin: 0; 100 border: 0; 101 } 102 103 body { 104 font-size: 12px; 105 font-family: ubuntu, helvetica, arial; 106 overflow: hidden; /* this is important to prevent the whole page to bounce */ 107 } 108 109 #header { 110 position: absolute; 111 z-index: 2; 112 top: 0; 113 left: 0; 114 width: 100%; 115 height: 45px; 116 line-height: 45px; 117 background: #CD235C; 118 padding: 0; 119 color: #eee; 120 font-size: 20px; 121 text-align: center; 122 font-weight: bold; 123 } 124 125 #footer { 126 position: absolute; 127 z-index: 2; 128 bottom: 0; 129 left: 0; 130 width: 100%; 131 height: 48px; 132 background: #444; 133 padding: 0; 134 border-top: 1px solid #444; 135 } 136 137 #wrapper { 138 position: absolute; 139 z-index: 1; 140 top: 45px; 141 bottom: 48px; 142 left: 0; 143 width: 100%; 144 background: #ccc; 145 overflow: hidden; 146 } 147 148 #scroller { 149 position: absolute; 150 z-index: 1; 151 -webkit-tap-highlight-color: rgba(0,0,0,0); 152 width: 100%; 153 -webkit-transform: translateZ(0); 154 -moz-transform: translateZ(0); 155 -ms-transform: translateZ(0); 156 -o-transform: translateZ(0); 157 transform: translateZ(0); 158 -webkit-touch-callout: none; 159 -webkit-user-select: none; 160 -moz-user-select: none; 161 -ms-user-select: none; 162 user-select: none; 163 -webkit-text-size-adjust: none; 164 -moz-text-size-adjust: none; 165 -ms-text-size-adjust: none; 166 -o-text-size-adjust: none; 167 text-size-adjust: none; 168 } 169 170 #scroller ul { 171 list-style: none; 172 padding: 0; 173 margin: 0; 174 width: 100%; 175 text-align: left; 176 position: relative; 177 } 178 179 #scroller li { 180 position: absolute; 181 width: 100%; 182 top: 0; 183 left: 0; 184 -webkit-transform: translateZ(0); 185 -moz-transform: translateZ(0); 186 -ms-transform: translateZ(0); 187 -o-transform: translateZ(0); 188 transform: translateZ(0); 189 padding: 0 10px; 190 height: 40px; 191 line-height: 40px; 192 border-bottom: 1px solid #ccc; 193 border-top: 1px solid #fff; 194 background-color: #fafafa; 195 font-size: 16px; 196 } 197 198 </style> 199 </head> 200 <body onload="loaded()"> 201 <div id="header">iScroll</div> 202 203 <div id="wrapper"> 204 <div id="scroller"> 205 <ul> 206 <li class="row">Row 1</li> 207 <li class="row">Row 2</li> 208 <li class="row">Row 3</li> 209 <li class="row">Row 4</li> 210 <li class="row">Row 5</li> 211 <li class="row">Row 6</li> 212 <li class="row">Row 7</li> 213 <li class="row">Row 8</li> 214 <li class="row">Row 9</li> 215 <li class="row">Row 10</li> 216 <li class="row">Row 11</li> 217 <li class="row">Row 12</li> 218 <li class="row">Row 13</li> 219 <li class="row">Row 14</li> 220 <li class="row">Row 15</li> 221 222 <li class="row">Row 16</li> 223 <li class="row">Row 17</li> 224 <li class="row">Row 18</li> 225 <li class="row">Row 19</li> 226 <li class="row">Row 20</li> 227 <li class="row">Row 21</li> 228 <li class="row">Row 22</li> 229 <li class="row">Row 23</li> 230 <li class="row">Row 24</li> 231 <li class="row">Row 25</li> 232 <li class="row">Row 26</li> 233 <li class="row">Row 27</li> 234 <li class="row">Row 28</li> 235 <li class="row">Row 29</li> 236 <li class="row">Row 30</li> 237 </ul> 238 </div> 239 </div> 240 241 <div id="footer"></div> 242 243 </body> 244 </html>
iscroll下載連接:GitHub-iscroll
更多內容參考:iScroll 5 API 中文版