scratch – Blame information for rev 117

Subversion Repositories:
Rev:
Rev Author Line No. Line
117 office 1 /*=========================
2 Scrollbar
3 ===========================*/
4 s.scrollbar = {
5 isTouched: false,
6 setDragPosition: function (e) {
7 var sb = s.scrollbar;
8 var x = 0, y = 0;
9 var translate;
10 var pointerPosition = s.isHorizontal() ?
11 ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageX : e.pageX || e.clientX) :
12 ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageY : e.pageY || e.clientY) ;
13 var position = (pointerPosition) - sb.track.offset()[s.isHorizontal() ? 'left' : 'top'] - sb.dragSize / 2;
14 var positionMin = -s.minTranslate() * sb.moveDivider;
15 var positionMax = -s.maxTranslate() * sb.moveDivider;
16 if (position < positionMin) {
17 < positionMin) { position = positionMin;
18 < positionMin) { }
19 < positionMin) { else if (position > positionMax) {
20 < positionMin) { position = positionMax;
21 < positionMin) { }
22 < positionMin) { position = -position / sb.moveDivider;
23 < positionMin) { s.updateProgress(position);
24 < positionMin) { s.setWrapperTranslate(position, true);
25 < positionMin) { },
26 < positionMin) { dragStart: function (e) {
27 < positionMin) { var sb = s.scrollbar;
28 < positionMin) { sb.isTouched = true;
29 < positionMin) { e.preventDefault();
30 < positionMin) { e.stopPropagation();
31  
32 < positionMin) { sb.setDragPosition(e);
33 < positionMin) { clearTimeout(sb.dragTimeout);
34  
35 < positionMin) { sb.track.transition(0);
36 < positionMin) { if (s.params.scrollbarHide) {
37 < positionMin) { sb.track.css('opacity', 1);
38 < positionMin) { }
39 < positionMin) { s.wrapper.transition(100);
40 < positionMin) { sb.drag.transition(100);
41 < positionMin) { s.emit('onScrollbarDragStart', s);
42 < positionMin) { },
43 < positionMin) { dragMove: function (e) {
44 < positionMin) { var sb = s.scrollbar;
45 < positionMin) { if (!sb.isTouched) return;
46 < positionMin) { if (e.preventDefault) e.preventDefault();
47 < positionMin) { else e.returnValue = false;
48 < positionMin) { sb.setDragPosition(e);
49 < positionMin) { s.wrapper.transition(0);
50 < positionMin) { sb.track.transition(0);
51 < positionMin) { sb.drag.transition(0);
52 < positionMin) { s.emit('onScrollbarDragMove', s);
53 < positionMin) { },
54 < positionMin) { dragEnd: function (e) {
55 < positionMin) { var sb = s.scrollbar;
56 < positionMin) { if (!sb.isTouched) return;
57 < positionMin) { sb.isTouched = false;
58 < positionMin) { if (s.params.scrollbarHide) {
59 < positionMin) { clearTimeout(sb.dragTimeout);
60 < positionMin) { sb.dragTimeout = setTimeout(function () {
61 < positionMin) { sb.track.css('opacity', 0);
62 < positionMin) { sb.track.transition(400);
63 < positionMin) { }, 1000);
64  
65 < positionMin) { }
66 < positionMin) { s.emit('onScrollbarDragEnd', s);
67 < positionMin) { if (s.params.scrollbarSnapOnRelease) {
68 < positionMin) { s.slideReset();
69 < positionMin) { }
70 < positionMin) { },
71 < positionMin) { draggableEvents: (function () {
72 < positionMin) { if ((s.params.simulateTouch === false && !s.support.touch)) return s.touchEventsDesktop;
73 < positionMin) { else return s.touchEvents;
74 < positionMin) { })(),
75 < positionMin) { enableDraggable: function () {
76 < positionMin) { var sb = s.scrollbar;
77 < positionMin) { var target = s.support.touch ? sb.track : document;
78 < positionMin) { $(sb.track).on(sb.draggableEvents.start, sb.dragStart);
79 < positionMin) { $(target).on(sb.draggableEvents.move, sb.dragMove);
80 < positionMin) { $(target).on(sb.draggableEvents.end, sb.dragEnd);
81 < positionMin) { },
82 < positionMin) { disableDraggable: function () {
83 < positionMin) { var sb = s.scrollbar;
84 < positionMin) { var target = s.support.touch ? sb.track : document;
85 < positionMin) { $(sb.track).off(sb.draggableEvents.start, sb.dragStart);
86 < positionMin) { $(target).off(sb.draggableEvents.move, sb.dragMove);
87 < positionMin) { $(target).off(sb.draggableEvents.end, sb.dragEnd);
88 < positionMin) { },
89 < positionMin) { set: function () {
90 < positionMin) { if (!s.params.scrollbar) return;
91 < positionMin) { var sb = s.scrollbar;
92 < positionMin) { sb.track = $(s.params.scrollbar);
93 < positionMin) { if (s.params.uniqueNavElements && typeof s.params.scrollbar === 'string' && sb.track.length > 1 && s.container.find(s.params.scrollbar).length === 1) {
94 < positionMin) { sb.track = s.container.find(s.params.scrollbar);
95 < positionMin) { }
96 < positionMin) { sb.drag = sb.track.find('.swiper-scrollbar-drag');
97 < positionMin) { if (sb.drag.length === 0) {
98 < positionMin) { sb.drag = $('<div class="swiper-scrollbar-drag"></div>');
99 < positionMin) { sb.track.append(sb.drag);
100 < positionMin) { }
101 < positionMin) { sb.drag[0].style.width = '';
102 < positionMin) { sb.drag[0].style.height = '';
103 < positionMin) { sb.trackSize = s.isHorizontal() ? sb.track[0].offsetWidth : sb.track[0].offsetHeight;
104  
105 < positionMin) { sb.divider = s.size / s.virtualSize;
106 < positionMin) { sb.moveDivider = sb.divider * (sb.trackSize / s.size);
107 < positionMin) { sb.dragSize = sb.trackSize * sb.divider;
108  
109 < positionMin) { if (s.isHorizontal()) {
110 < positionMin) { sb.drag[0].style.width = sb.dragSize + 'px';
111 < positionMin) { }
112 < positionMin) { else {
113 < positionMin) { sb.drag[0].style.height = sb.dragSize + 'px';
114 < positionMin) { }
115  
116 < positionMin) { if (sb.divider >= 1) {
117 < positionMin) { sb.track[0].style.display = 'none';
118 < positionMin) { }
119 < positionMin) { else {
120 < positionMin) { sb.track[0].style.display = '';
121 < positionMin) { }
122 < positionMin) { if (s.params.scrollbarHide) {
123 < positionMin) { sb.track[0].style.opacity = 0;
124 < positionMin) { }
125 < positionMin) { },
126 < positionMin) { setTranslate: function () {
127 < positionMin) { if (!s.params.scrollbar) return;
128 < positionMin) { var diff;
129 < positionMin) { var sb = s.scrollbar;
130 < positionMin) { var translate = s.translate || 0;
131 < positionMin) { var newPos;
132  
133 < positionMin) { var newSize = sb.dragSize;
134 < positionMin) { newPos = (sb.trackSize - sb.dragSize) * s.progress;
135 < positionMin) { if (s.rtl && s.isHorizontal()) {
136 < positionMin) { newPos = -newPos;
137 < positionMin) { if (newPos > 0) {
138 < positionMin) { newSize = sb.dragSize - newPos;
139 < positionMin) { newPos = 0;
140 < positionMin) { }
141 < positionMin) { else if (-newPos + sb.dragSize > sb.trackSize) {
142 < positionMin) { newSize = sb.trackSize + newPos;
143 < positionMin) { }
144 < positionMin) { }
145 < positionMin) { else {
146 < positionMin) { if (newPos < 0) {
147 < positionMin) { newSize = sb.dragSize + newPos;
148 < positionMin) { newPos = 0;
149 < positionMin) { }
150 < positionMin) { else if (newPos + sb.dragSize > sb.trackSize) {
151 < positionMin) { newSize = sb.trackSize - newPos;
152 < positionMin) { }
153 < positionMin) { }
154 < positionMin) { if (s.isHorizontal()) {
155 < positionMin) { if (s.support.transforms3d) {
156 < positionMin) { sb.drag.transform('translate3d(' + (newPos) + 'px, 0, 0)');
157 < positionMin) { }
158 < positionMin) { else {
159 < positionMin) { sb.drag.transform('translateX(' + (newPos) + 'px)');
160 < positionMin) { }
161 < positionMin) { sb.drag[0].style.width = newSize + 'px';
162 < positionMin) { }
163 < positionMin) { else {
164 < positionMin) { if (s.support.transforms3d) {
165 < positionMin) { sb.drag.transform('translate3d(0px, ' + (newPos) + 'px, 0)');
166 < positionMin) { }
167 < positionMin) { else {
168 < positionMin) { sb.drag.transform('translateY(' + (newPos) + 'px)');
169 < positionMin) { }
170 < positionMin) { sb.drag[0].style.height = newSize + 'px';
171 < positionMin) { }
172 < positionMin) { if (s.params.scrollbarHide) {
173 < positionMin) { clearTimeout(sb.timeout);
174 < positionMin) { sb.track[0].style.opacity = 1;
175 < positionMin) { sb.timeout = setTimeout(function () {
176 < positionMin) { sb.track[0].style.opacity = 0;
177 < positionMin) { sb.track.transition(400);
178 < positionMin) { }, 1000);
179 < positionMin) { }
180 < positionMin) { },
181 < positionMin) { setTransition: function (duration) {
182 < positionMin) { if (!s.params.scrollbar) return;
183 < positionMin) { s.scrollbar.drag.transition(duration);
184 < positionMin) { }
185 < positionMin) {};