| 12694 |
anikendra |
1 |
(function() {
|
|
|
2 |
function n(p, m) {
|
|
|
3 |
var q = this, r = document, o;
|
|
|
4 |
q.wrapper = typeof p == "object" ? p : r.getElementById(p);
|
|
|
5 |
q.wrapper.style.overflow = "hidden";
|
|
|
6 |
q.scroller = q.wrapper.children[0];
|
|
|
7 |
q.scroller.style.cssText += "-webkit-transition-property:-webkit-transform;-webkit-transform-origin:0 0;-webkit-transform:"
|
|
|
8 |
+ a + "0,0" + g;
|
|
|
9 |
q.scroller.style.cssText += "-webkit-transition-timing-function:cubic-bezier(0.33,0.66,0.66,1);-webkit-transition-duration:0;";
|
|
|
10 |
q.options = {
|
|
|
11 |
hScroll : true,
|
|
|
12 |
vScroll : true,
|
|
|
13 |
bounce : i,
|
|
|
14 |
bounceLock : false,
|
|
|
15 |
momentum : i,
|
|
|
16 |
lockDirection : true,
|
|
|
17 |
hScrollbar : true,
|
|
|
18 |
vScrollbar : true,
|
|
|
19 |
fixedScrollbar : k,
|
|
|
20 |
fadeScrollbar : (l && i) || !h,
|
|
|
21 |
hideScrollbar : l || !h,
|
|
|
22 |
scrollbarClass : "",
|
|
|
23 |
onScrollStart : null,
|
|
|
24 |
onScrollEnd : null,
|
|
|
25 |
};
|
|
|
26 |
for (o in m) {
|
|
|
27 |
q.options[o] = m[o]
|
|
|
28 |
}
|
|
|
29 |
q.options.hScrollbar = q.options.hScroll && q.options.hScrollbar;
|
|
|
30 |
q.options.vScrollbar = q.options.vScroll && q.options.vScrollbar;
|
|
|
31 |
q.refresh();
|
|
|
32 |
q._bind(j, window);
|
|
|
33 |
q._bind(e)
|
|
|
34 |
}
|
|
|
35 |
n.prototype = {
|
|
|
36 |
x : 0,
|
|
|
37 |
y : 0,
|
|
|
38 |
handleEvent : function(o) {
|
|
|
39 |
var m = this;
|
|
|
40 |
switch (o.type) {
|
|
|
41 |
case e:
|
|
|
42 |
m._start(o);
|
|
|
43 |
break;
|
|
|
44 |
case d:
|
|
|
45 |
m._move(o);
|
|
|
46 |
break;
|
|
|
47 |
case f:
|
|
|
48 |
case b:
|
|
|
49 |
m._end(o);
|
|
|
50 |
break;
|
|
|
51 |
case "webkitTransitionEnd":
|
|
|
52 |
m._transitionEnd(o);
|
|
|
53 |
break;
|
|
|
54 |
case j:
|
|
|
55 |
m._resize();
|
|
|
56 |
break
|
|
|
57 |
}
|
|
|
58 |
},
|
|
|
59 |
_scrollbar : function(m) {
|
|
|
60 |
var p = this, q = document, o;
|
|
|
61 |
if (!p[m + "Scrollbar"]) {
|
|
|
62 |
if (p[m + "ScrollbarWrapper"]) {
|
|
|
63 |
p[m + "ScrollbarIndicator"].style.webkitTransform = "";
|
|
|
64 |
p[m + "ScrollbarWrapper"].parentNode.removeChild(p[m
|
|
|
65 |
+ "ScrollbarWrapper"]);
|
|
|
66 |
p[m + "ScrollbarWrapper"] = null;
|
|
|
67 |
p[m + "ScrollbarIndicator"] = null
|
|
|
68 |
}
|
|
|
69 |
return
|
|
|
70 |
}
|
|
|
71 |
if (!p[m + "ScrollbarWrapper"]) {
|
|
|
72 |
o = q.createElement("div");
|
|
|
73 |
if (p.options.scrollbarClass) {
|
|
|
74 |
o.className = p.options.scrollbarClass + m.toUpperCase()
|
|
|
75 |
} else {
|
|
|
76 |
o.style.cssText = "position:absolute;z-index:100;"
|
|
|
77 |
+ (m == "h" ? "height:7px;bottom:1px;left:2px;right:7px"
|
|
|
78 |
: "width:7px;bottom:7px;top:2px;right:1px")
|
|
|
79 |
}
|
|
|
80 |
o.style.cssText += "pointer-events:none;-webkit-transition-property:opacity;-webkit-transition-duration:"
|
|
|
81 |
+ (p.options.fadeScrollbar ? "350ms" : "0")
|
|
|
82 |
+ ";overflow:hidden;opacity:"
|
|
|
83 |
+ (p.options.hideScrollbar ? "0" : "1");
|
|
|
84 |
p.wrapper.appendChild(o);
|
|
|
85 |
p[m + "ScrollbarWrapper"] = o;
|
|
|
86 |
o = q.createElement("div");
|
|
|
87 |
if (!p.options.scrollbarClass) {
|
|
|
88 |
o.style.cssText = "position:absolute;z-index:100;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);-webkit-background-clip:padding-box;-webkit-box-sizing:border-box;"
|
|
|
89 |
+ (m == "h" ? "height:100%;-webkit-border-radius:4px 3px;"
|
|
|
90 |
: "width:100%;-webkit-border-radius:3px 4px;")
|
|
|
91 |
}
|
|
|
92 |
o.style.cssText += "pointer-events:none;-webkit-transition-property:-webkit-transform;-webkit-transition-timing-function:cubic-bezier(0.33,0.66,0.66,1);-webkit-transition-duration:0;-webkit-transform:"
|
|
|
93 |
+ a + "0,0" + g;
|
|
|
94 |
p[m + "ScrollbarWrapper"].appendChild(o);
|
|
|
95 |
p[m + "ScrollbarIndicator"] = o
|
|
|
96 |
}
|
|
|
97 |
if (m == "h") {
|
|
|
98 |
p.hScrollbarSize = p.hScrollbarWrapper.clientWidth;
|
|
|
99 |
p.hScrollbarIndicatorSize = c.max(c.round(p.hScrollbarSize
|
|
|
100 |
* p.hScrollbarSize / p.scrollerW), 8);
|
|
|
101 |
p.hScrollbarIndicator.style.width = p.hScrollbarIndicatorSize
|
|
|
102 |
+ "px";
|
|
|
103 |
p.hScrollbarMaxScroll = p.hScrollbarSize
|
|
|
104 |
- p.hScrollbarIndicatorSize;
|
|
|
105 |
p.hScrollbarProp = p.hScrollbarMaxScroll / p.maxScrollX
|
|
|
106 |
} else {
|
|
|
107 |
p.vScrollbarSize = p.vScrollbarWrapper.clientHeight;
|
|
|
108 |
p.vScrollbarIndicatorSize = c.max(c.round(p.vScrollbarSize
|
|
|
109 |
* p.vScrollbarSize / p.scrollerH), 8);
|
|
|
110 |
p.vScrollbarIndicator.style.height = p.vScrollbarIndicatorSize
|
|
|
111 |
+ "px";
|
|
|
112 |
p.vScrollbarMaxScroll = p.vScrollbarSize
|
|
|
113 |
- p.vScrollbarIndicatorSize;
|
|
|
114 |
p.vScrollbarProp = p.vScrollbarMaxScroll / p.maxScrollY
|
|
|
115 |
}
|
|
|
116 |
p._indicatorPos(m, true)
|
|
|
117 |
},
|
|
|
118 |
_resize : function() {
|
|
|
119 |
var m = this;
|
|
|
120 |
setTimeout(function() {
|
|
|
121 |
m.refresh()
|
|
|
122 |
}, 0)
|
|
|
123 |
},
|
|
|
124 |
_pos : function(m, p) {
|
|
|
125 |
var o = this;
|
|
|
126 |
o.x = o.hScroll ? m : 0;
|
|
|
127 |
o.y = o.vScroll ? p : 0;
|
|
|
128 |
o.scroller.style.webkitTransform = a + o.x + "px," + o.y + "px" + g;
|
|
|
129 |
o._indicatorPos("h");
|
|
|
130 |
o._indicatorPos("v")
|
|
|
131 |
},
|
|
|
132 |
_indicatorPos : function(m, p) {
|
|
|
133 |
var o = this, q = m == "h" ? o.x : o.y;
|
|
|
134 |
if (!o[m + "Scrollbar"]) {
|
|
|
135 |
return
|
|
|
136 |
}
|
|
|
137 |
q = o[m + "ScrollbarProp"] * q;
|
|
|
138 |
if (q < 0) {
|
|
|
139 |
q = o.options.fixedScrollbar ? 0 : q + q * 3;
|
|
|
140 |
if (o[m + "ScrollbarIndicatorSize"] + q < 9) {
|
|
|
141 |
q = -o[m + "ScrollbarIndicatorSize"] + 8
|
|
|
142 |
}
|
|
|
143 |
} else {
|
|
|
144 |
if (q > o[m + "ScrollbarMaxScroll"]) {
|
|
|
145 |
q = o.options.fixedScrollbar ? o[m + "ScrollbarMaxScroll"]
|
|
|
146 |
: q + (q - o[m + "ScrollbarMaxScroll"]) * 3;
|
|
|
147 |
if (o[m + "ScrollbarIndicatorSize"]
|
|
|
148 |
+ o[m + "ScrollbarMaxScroll"] - q < 9) {
|
|
|
149 |
q = o[m + "ScrollbarIndicatorSize"]
|
|
|
150 |
+ o[m + "ScrollbarMaxScroll"] - 8
|
|
|
151 |
}
|
|
|
152 |
}
|
|
|
153 |
}
|
|
|
154 |
o[m + "ScrollbarWrapper"].style.webkitTransitionDelay = "0";
|
|
|
155 |
o[m + "ScrollbarWrapper"].style.opacity = p
|
|
|
156 |
&& o.options.hideScrollbar ? "0" : "1";
|
|
|
157 |
o[m + "ScrollbarIndicator"].style.webkitTransform = a
|
|
|
158 |
+ (m == "h" ? q + "px,0" : "0," + q + "px") + g
|
|
|
159 |
},
|
|
|
160 |
_transitionTime : function(o) {
|
|
|
161 |
var m = this;
|
|
|
162 |
o += "ms";
|
|
|
163 |
m.scroller.style.webkitTransitionDuration = o;
|
|
|
164 |
if (m.hScrollbar) {
|
|
|
165 |
m.hScrollbarIndicator.style.webkitTransitionDuration = o
|
|
|
166 |
}
|
|
|
167 |
if (m.vScrollbar) {
|
|
|
168 |
m.vScrollbarIndicator.style.webkitTransitionDuration = o
|
|
|
169 |
}
|
|
|
170 |
},
|
|
|
171 |
_start : function(q) {
|
|
|
172 |
var p = this, m = h ? q.changedTouches[0] : q, o;
|
|
|
173 |
p.moved = false;
|
|
|
174 |
q.preventDefault();
|
|
|
175 |
p.moved = false;
|
|
|
176 |
p.distX = 0;
|
|
|
177 |
p.distY = 0;
|
|
|
178 |
p.absDistX = 0;
|
|
|
179 |
p.absDistY = 0;
|
|
|
180 |
p.dirX = 0;
|
|
|
181 |
p.dirY = 0;
|
|
|
182 |
p.returnTime = 0;
|
|
|
183 |
p._transitionTime(0);
|
|
|
184 |
if (p.options.momentum) {
|
|
|
185 |
o = new WebKitCSSMatrix(window.getComputedStyle(p.scroller,
|
|
|
186 |
null).webkitTransform);
|
|
|
187 |
if (o.m41 != p.x || o.m42 != p.y) {
|
|
|
188 |
p._unbind("webkitTransitionEnd");
|
|
|
189 |
p._pos(o.m41, o.m42)
|
|
|
190 |
}
|
|
|
191 |
}
|
|
|
192 |
p.scroller.style.webkitTransitionTimingFunction = "cubic-bezier(0.33,0.66,0.66,1)";
|
|
|
193 |
if (p.hScrollbar) {
|
|
|
194 |
p.hScrollbarIndicator.style.webkitTransitionTimingFunction = "cubic-bezier(0.33,0.66,0.66,1)"
|
|
|
195 |
}
|
|
|
196 |
if (p.vScrollbar) {
|
|
|
197 |
p.vScrollbarIndicator.style.webkitTransitionTimingFunction = "cubic-bezier(0.33,0.66,0.66,1)"
|
|
|
198 |
}
|
|
|
199 |
p.startX = p.x;
|
|
|
200 |
p.startY = p.y;
|
|
|
201 |
p.pointX = m.pageX;
|
|
|
202 |
p.pointY = m.pageY;
|
|
|
203 |
p.startTime = q.timeStamp;
|
|
|
204 |
if (p.options.onScrollStart) {
|
|
|
205 |
p.options.onScrollStart.call(p)
|
|
|
206 |
}
|
|
|
207 |
p._bind(d);
|
|
|
208 |
p._bind(f);
|
|
|
209 |
p._bind(b)
|
|
|
210 |
},
|
|
|
211 |
_move : function(s) {
|
|
|
212 |
if (h && s.touches.length > 1) {
|
|
|
213 |
return
|
|
|
214 |
}
|
|
|
215 |
var q = this, o = h ? s.changedTouches[0] : s, p = o.pageX
|
|
|
216 |
- q.pointX, m = o.pageY - q.pointY, t = q.x + p, r = q.y
|
|
|
217 |
+ m;
|
|
|
218 |
s.preventDefault();
|
|
|
219 |
q.pointX = o.pageX;
|
|
|
220 |
q.pointY = o.pageY;
|
|
|
221 |
if (t > 0 || t < q.maxScrollX) {
|
|
|
222 |
t = q.options.bounce ? q.x + (p / 2.4) : t >= 0
|
|
|
223 |
|| q.maxScrollX >= 0 ? 0 : q.maxScrollX
|
|
|
224 |
}
|
|
|
225 |
if (r > 0 || r < q.maxScrollY) {
|
|
|
226 |
r = q.options.bounce ? q.y + (m / 2.4) : r >= 0
|
|
|
227 |
|| q.maxScrollY >= 0 ? 0 : q.maxScrollY
|
|
|
228 |
}
|
|
|
229 |
if (q.absDistX < 4 && q.absDistY < 4) {
|
|
|
230 |
q.distX += p;
|
|
|
231 |
q.distY += m;
|
|
|
232 |
q.absDistX = c.abs(q.distX);
|
|
|
233 |
q.absDistY = c.abs(q.distY);
|
|
|
234 |
return
|
|
|
235 |
}
|
|
|
236 |
if (q.options.lockDirection) {
|
|
|
237 |
if (q.absDistX > q.absDistY + 3) {
|
|
|
238 |
r = q.y;
|
|
|
239 |
m = 0
|
|
|
240 |
} else {
|
|
|
241 |
if (q.absDistY > q.absDistX + 3) {
|
|
|
242 |
t = q.x;
|
|
|
243 |
p = 0
|
|
|
244 |
}
|
|
|
245 |
}
|
|
|
246 |
}
|
|
|
247 |
q.moved = true;
|
|
|
248 |
q._pos(t, r);
|
|
|
249 |
q.dirX = p > 0 ? -1 : p < 0 ? 1 : 0;
|
|
|
250 |
q.dirY = m > 0 ? -1 : m < 0 ? 1 : 0;
|
|
|
251 |
if (s.timeStamp - q.startTime > 300) {
|
|
|
252 |
q.startTime = s.timeStamp;
|
|
|
253 |
q.startX = q.x;
|
|
|
254 |
q.startY = q.y
|
|
|
255 |
}
|
|
|
256 |
},
|
|
|
257 |
_end : function(t) {
|
|
|
258 |
if (h && t.touches.length != 0) {
|
|
|
259 |
return
|
|
|
260 |
}
|
|
|
261 |
var r = this, x = h ? t.changedTouches[0] : t, u, w, p = {
|
|
|
262 |
dist : 0,
|
|
|
263 |
time : 0
|
|
|
264 |
}, m = {
|
|
|
265 |
dist : 0,
|
|
|
266 |
time : 0
|
|
|
267 |
}, q = t.timeStamp - r.startTime, v = r.x, s = r.y, o;
|
|
|
268 |
r._unbind(d);
|
|
|
269 |
r._unbind(f);
|
|
|
270 |
r._unbind(b);
|
|
|
271 |
if (!r.moved) {
|
|
|
272 |
if (h) {
|
|
|
273 |
r.doubleTapTimer = null;
|
|
|
274 |
u = x.target;
|
|
|
275 |
while (u.nodeType != 1) {
|
|
|
276 |
u = u.parentNode
|
|
|
277 |
}
|
|
|
278 |
w = document.createEvent("MouseEvents");
|
|
|
279 |
w.initMouseEvent("click", true, true, t.view, 1, x.screenX,
|
|
|
280 |
x.screenY, x.clientX, x.clientY, t.ctrlKey,
|
|
|
281 |
t.altKey, t.shiftKey, t.metaKey, 0, null);
|
|
|
282 |
w._fake = true;
|
|
|
283 |
u.dispatchEvent(w)
|
|
|
284 |
}
|
|
|
285 |
r._resetPos();
|
|
|
286 |
return
|
|
|
287 |
}
|
|
|
288 |
if (q < 300 && r.options.momentum) {
|
|
|
289 |
p = v ? r._momentum(v - r.startX, q, -r.x, r.scrollerW
|
|
|
290 |
- r.wrapperW + r.x, r.options.bounce ? r.wrapperW : 0)
|
|
|
291 |
: p;
|
|
|
292 |
m = s ? r
|
|
|
293 |
._momentum(s - r.startY, q, -r.y,
|
|
|
294 |
(r.maxScrollY < 0 ? r.scrollerH - r.wrapperH
|
|
|
295 |
+ r.y : 0),
|
|
|
296 |
r.options.bounce ? r.wrapperH : 0) : m;
|
|
|
297 |
v = r.x + p.dist;
|
|
|
298 |
s = r.y + m.dist;
|
|
|
299 |
if ((r.x > 0 && v > 0)
|
|
|
300 |
|| (r.x < r.maxScrollX && v < r.maxScrollX)) {
|
|
|
301 |
p = {
|
|
|
302 |
dist : 0,
|
|
|
303 |
time : 0
|
|
|
304 |
}
|
|
|
305 |
}
|
|
|
306 |
if ((r.y > 0 && s > 0)
|
|
|
307 |
|| (r.y < r.maxScrollY && s < r.maxScrollY)) {
|
|
|
308 |
m = {
|
|
|
309 |
dist : 0,
|
|
|
310 |
time : 0
|
|
|
311 |
}
|
|
|
312 |
}
|
|
|
313 |
}
|
|
|
314 |
if (p.dist || m.dist) {
|
|
|
315 |
o = c.max(c.max(p.time, m.time), 10);
|
|
|
316 |
r.scrollTo(v, s, o);
|
|
|
317 |
return
|
|
|
318 |
}
|
|
|
319 |
r._resetPos(200)
|
|
|
320 |
},
|
|
|
321 |
_resetPos : function(p) {
|
|
|
322 |
var m = this, q = m.x, o = m.y;
|
|
|
323 |
if (m.x >= 0) {
|
|
|
324 |
q = 0
|
|
|
325 |
} else {
|
|
|
326 |
if (m.x < m.maxScrollX) {
|
|
|
327 |
q = m.maxScrollX
|
|
|
328 |
}
|
|
|
329 |
}
|
|
|
330 |
if (m.y >= 0 || m.maxScrollY > 0) {
|
|
|
331 |
o = 0
|
|
|
332 |
} else {
|
|
|
333 |
if (m.y < m.maxScrollY) {
|
|
|
334 |
o = m.maxScrollY
|
|
|
335 |
}
|
|
|
336 |
}
|
|
|
337 |
if (q == m.x && o == m.y) {
|
|
|
338 |
if (m.moved) {
|
|
|
339 |
if (m.options.onScrollEnd) {
|
|
|
340 |
m.options.onScrollEnd.call(m)
|
|
|
341 |
}
|
|
|
342 |
m.moved = false
|
|
|
343 |
}
|
|
|
344 |
if (m.hScrollbar && m.options.hideScrollbar) {
|
|
|
345 |
m.hScrollbarWrapper.style.webkitTransitionDelay = "300ms";
|
|
|
346 |
m.hScrollbarWrapper.style.opacity = "0"
|
|
|
347 |
}
|
|
|
348 |
if (m.vScrollbar && m.options.hideScrollbar) {
|
|
|
349 |
m.vScrollbarWrapper.style.webkitTransitionDelay = "300ms";
|
|
|
350 |
m.vScrollbarWrapper.style.opacity = "0"
|
|
|
351 |
}
|
|
|
352 |
return
|
|
|
353 |
}
|
|
|
354 |
if (p) {
|
|
|
355 |
m.scroller.style.webkitTransitionTimingFunction = "cubic-bezier(0.33,0.0,0.33,1)";
|
|
|
356 |
if (m.hScrollbar) {
|
|
|
357 |
m.hScrollbarIndicator.style.webkitTransitionTimingFunction = "cubic-bezier(0.33,0.0,0.33,1)"
|
|
|
358 |
}
|
|
|
359 |
if (m.vScrollbar) {
|
|
|
360 |
m.vScrollbarIndicator.style.webkitTransitionTimingFunction = "cubic-bezier(0.33,0.0,0.33,1)"
|
|
|
361 |
}
|
|
|
362 |
}
|
|
|
363 |
m.scrollTo(q, o, p || 0)
|
|
|
364 |
},
|
|
|
365 |
_transitionEnd : function(o) {
|
|
|
366 |
var m = this;
|
|
|
367 |
if (o) {
|
|
|
368 |
o.stopPropagation()
|
|
|
369 |
}
|
|
|
370 |
m._unbind("webkitTransitionEnd");
|
|
|
371 |
m._resetPos(m.returnTime);
|
|
|
372 |
m.returnTime = 0
|
|
|
373 |
},
|
|
|
374 |
_momentum : function(v, p, t, m, x) {
|
|
|
375 |
var s = this, u = 0.0006, q = c.abs(v) / p, o = (q * q) / (2 * u), w = 0, r = 0;
|
|
|
376 |
if (v > 0 && o > t) {
|
|
|
377 |
r = x / (6 / (o / q * u));
|
|
|
378 |
t = t + r;
|
|
|
379 |
s.returnTime = 800 / x * r + 100;
|
|
|
380 |
q = q * t / o;
|
|
|
381 |
o = t
|
|
|
382 |
} else {
|
|
|
383 |
if (v < 0 && o > m) {
|
|
|
384 |
r = x / (6 / (o / q * u));
|
|
|
385 |
m = m + r;
|
|
|
386 |
s.returnTime = 800 / x * r + 100;
|
|
|
387 |
q = q * m / o;
|
|
|
388 |
o = m
|
|
|
389 |
}
|
|
|
390 |
}
|
|
|
391 |
o = o * (v < 0 ? -1 : 1);
|
|
|
392 |
w = q / u;
|
|
|
393 |
return {
|
|
|
394 |
dist : o,
|
|
|
395 |
time : c.round(w)
|
|
|
396 |
}
|
|
|
397 |
},
|
|
|
398 |
_offset : function(o, m) {
|
|
|
399 |
var q = -o.offsetLeft, p = -o.offsetTop;
|
|
|
400 |
if (!m) {
|
|
|
401 |
return {
|
|
|
402 |
x : q,
|
|
|
403 |
y : p
|
|
|
404 |
}
|
|
|
405 |
}
|
|
|
406 |
while (o = o.offsetParent) {
|
|
|
407 |
q -= o.offsetLeft;
|
|
|
408 |
p -= o.offsetTop
|
|
|
409 |
}
|
|
|
410 |
return {
|
|
|
411 |
x : q,
|
|
|
412 |
y : p
|
|
|
413 |
}
|
|
|
414 |
},
|
|
|
415 |
_bind : function(o, m) {
|
|
|
416 |
(m || this.scroller).addEventListener(o, this, false)
|
|
|
417 |
},
|
|
|
418 |
_unbind : function(o, m) {
|
|
|
419 |
(m || this.scroller).removeEventListener(o, this, false)
|
|
|
420 |
},
|
|
|
421 |
destroy : function() {
|
|
|
422 |
var m = this;
|
|
|
423 |
m.hScrollbar = false;
|
|
|
424 |
m.vScrollbar = false;
|
|
|
425 |
m._scrollbar("h");
|
|
|
426 |
m._scrollbar("v");
|
|
|
427 |
m.scroller.style.webkitTransform = "";
|
|
|
428 |
m._unbind("webkitTransitionEnd");
|
|
|
429 |
m._unbind(j);
|
|
|
430 |
m._unbind(e);
|
|
|
431 |
m._unbind(d);
|
|
|
432 |
m._unbind(f);
|
|
|
433 |
m._unbind(b)
|
|
|
434 |
},
|
|
|
435 |
refresh : function() {
|
|
|
436 |
var m = this;
|
|
|
437 |
m.wrapperW = m.wrapper.clientWidth;
|
|
|
438 |
m.wrapperH = m.wrapper.clientHeight;
|
|
|
439 |
m.scrollerW = m.scroller.offsetWidth;
|
|
|
440 |
m.scrollerH = m.scroller.offsetHeight;
|
|
|
441 |
m.maxScrollX = m.wrapperW - m.scrollerW;
|
|
|
442 |
m.maxScrollY = m.wrapperH - m.scrollerH;
|
|
|
443 |
m.dirX = 0;
|
|
|
444 |
m.dirY = 0;
|
|
|
445 |
m._transitionTime(0);
|
|
|
446 |
m.hScroll = m.options.hScroll && m.maxScrollX < 0;
|
|
|
447 |
m.vScroll = m.options.vScroll
|
|
|
448 |
&& (!m.options.bounceLock && !m.hScroll || m.scrollerH > m.wrapperH);
|
|
|
449 |
m.hScrollbar = m.hScroll && m.options.hScrollbar;
|
|
|
450 |
m.vScrollbar = m.vScroll && m.options.vScrollbar
|
|
|
451 |
&& m.scrollerH > m.wrapperH;
|
|
|
452 |
m._scrollbar("h");
|
|
|
453 |
m._scrollbar("v");
|
|
|
454 |
m._resetPos()
|
|
|
455 |
},
|
|
|
456 |
scrollTo : function(m, r, q, p) {
|
|
|
457 |
var o = this;
|
|
|
458 |
if (p) {
|
|
|
459 |
m = o.x - m;
|
|
|
460 |
r = o.y - r
|
|
|
461 |
}
|
|
|
462 |
q = !q
|
|
|
463 |
|| (c.round(o.x) == c.round(m) && c.round(o.y) == c
|
|
|
464 |
.round(r)) ? 0 : q;
|
|
|
465 |
o.moved = true;
|
|
|
466 |
if (q) {
|
|
|
467 |
o._bind("webkitTransitionEnd")
|
|
|
468 |
}
|
|
|
469 |
o._transitionTime(q);
|
|
|
470 |
o._pos(m, r);
|
|
|
471 |
if (!q) {
|
|
|
472 |
setTimeout(function() {
|
|
|
473 |
o._transitionEnd()
|
|
|
474 |
}, 0)
|
|
|
475 |
}
|
|
|
476 |
},
|
|
|
477 |
scrollToElement : function(m, p) {
|
|
|
478 |
var o = this, q;
|
|
|
479 |
m = m.nodeType ? m : o.scroller.querySelector(m);
|
|
|
480 |
if (!m) {
|
|
|
481 |
return
|
|
|
482 |
}
|
|
|
483 |
q = o._offset(m);
|
|
|
484 |
q.x = q.x > 0 ? 0 : q.x < o.maxScrollX ? o.maxScrollX : q.x;
|
|
|
485 |
q.y = q.y > 0 ? 0 : q.y < o.maxScrollY ? o.maxScrollY : q.y;
|
|
|
486 |
p = p === undefined ? c.max(c.abs(q.x) * 2, c.abs(q.y) * 2) : p;
|
|
|
487 |
o.scrollTo(q.x, q.y, p)
|
|
|
488 |
}
|
|
|
489 |
};
|
|
|
490 |
var i = "WebKitCSSMatrix" in window && "m11" in new WebKitCSSMatrix(), h = "ontouchstart" in window, l = (/iphone|ipad/gi)
|
|
|
491 |
.test(navigator.appVersion), k = (/android/gi)
|
|
|
492 |
.test(navigator.appVersion), j = "onorientationchange" in window ? "orientationchange"
|
|
|
493 |
: "resize", e = h ? "touchstart" : "mousedown", d = h ? "touchmove"
|
|
|
494 |
: "mousemove", f = h ? "touchend" : "mouseup", b = h ? "touchcancel"
|
|
|
495 |
: "mouseup", a = "translate" + (i ? "3d(" : "("), g = i ? ",0)"
|
|
|
496 |
: ")", c = Math;
|
|
|
497 |
if (typeof exports !== "undefined") {
|
|
|
498 |
exports.iScroll = n
|
|
|
499 |
} else {
|
|
|
500 |
window.iScroll = n
|
|
|
501 |
}
|
|
|
502 |
})();
|