mui_app_rails 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/mui_app_rails/mui.js +6013 -1
  3. data/app/assets/javascripts/mui_app_rails/mui.min.js +8 -0
  4. data/app/assets/javascripts/mui_app_rails.js +1 -1
  5. data/app/assets/stylesheets/mui_app_rails/mui.css +3742 -0
  6. data/app/assets/stylesheets/mui_app_rails/mui.min.css +5 -0
  7. data/lib/mui_app_rails/engine.rb +12 -0
  8. data/lib/mui_app_rails/version.rb +1 -1
  9. data/lib/mui_app_rails.rb +1 -1
  10. metadata +17 -99
  11. data/app/assets/javascripts/mui_app_rails/actions.js +0 -26
  12. data/app/assets/javascripts/mui_app_rails/ajax.plugin.js +0 -3
  13. data/app/assets/javascripts/mui_app_rails/input.plugin.js +0 -232
  14. data/app/assets/javascripts/mui_app_rails/modals.js +0 -37
  15. data/app/assets/javascripts/mui_app_rails/mui.active.js +0 -30
  16. data/app/assets/javascripts/mui_app_rails/mui.ajax.5+.js +0 -27
  17. data/app/assets/javascripts/mui_app_rails/mui.ajax.js +0 -277
  18. data/app/assets/javascripts/mui_app_rails/mui.animation.js +0 -39
  19. data/app/assets/javascripts/mui_app_rails/mui.animationframe.js +0 -72
  20. data/app/assets/javascripts/mui_app_rails/mui.back.5+.js +0 -108
  21. data/app/assets/javascripts/mui_app_rails/mui.back.js +0 -56
  22. data/app/assets/javascripts/mui_app_rails/mui.class.js +0 -40
  23. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.js +0 -894
  24. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.pullrefresh.js +0 -150
  25. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.slider.js +0 -361
  26. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.slider.old.js +0 -332
  27. data/app/assets/javascripts/mui_app_rails/mui.detect.5+.js +0 -18
  28. data/app/assets/javascripts/mui_app_rails/mui.detect.js +0 -50
  29. data/app/assets/javascripts/mui_app_rails/mui.dialog.alert.js +0 -27
  30. data/app/assets/javascripts/mui_app_rails/mui.dialog.confirm.js +0 -27
  31. data/app/assets/javascripts/mui_app_rails/mui.dialog.prompt.js +0 -33
  32. data/app/assets/javascripts/mui_app_rails/mui.dialog.toast.js +0 -20
  33. data/app/assets/javascripts/mui_app_rails/mui.event.js +0 -160
  34. data/app/assets/javascripts/mui_app_rails/mui.fixed.animation.js +0 -22
  35. data/app/assets/javascripts/mui_app_rails/mui.fixed.classlist.js +0 -50
  36. data/app/assets/javascripts/mui_app_rails/mui.fixed.fastclick.js +0 -64
  37. data/app/assets/javascripts/mui_app_rails/mui.fixed.js +0 -40
  38. data/app/assets/javascripts/mui_app_rails/mui.fixed.keyboard.js +0 -56
  39. data/app/assets/javascripts/mui_app_rails/mui.gestures.drag.js +0 -48
  40. data/app/assets/javascripts/mui_app_rails/mui.gestures.flick.js +0 -30
  41. data/app/assets/javascripts/mui_app_rails/mui.gestures.hold.js +0 -41
  42. data/app/assets/javascripts/mui_app_rails/mui.gestures.js +0 -207
  43. data/app/assets/javascripts/mui_app_rails/mui.gestures.longtap.js +0 -43
  44. data/app/assets/javascripts/mui_app_rails/mui.gestures.swipe.js +0 -29
  45. data/app/assets/javascripts/mui_app_rails/mui.gestures.tap.js +0 -40
  46. data/app/assets/javascripts/mui_app_rails/mui.init.5+.js +0 -441
  47. data/app/assets/javascripts/mui_app_rails/mui.init.js +0 -100
  48. data/app/assets/javascripts/mui_app_rails/mui.init.pullrefresh.js +0 -57
  49. data/app/assets/javascripts/mui_app_rails/mui.jsonp.js +0 -108
  50. data/app/assets/javascripts/mui_app_rails/mui.layout.js +0 -22
  51. data/app/assets/javascripts/mui_app_rails/mui.namespace.js +0 -35
  52. data/app/assets/javascripts/mui_app_rails/mui.number.js +0 -93
  53. data/app/assets/javascripts/mui_app_rails/mui.offcanvas.js +0 -497
  54. data/app/assets/javascripts/mui_app_rails/mui.pullrefresh.js +0 -157
  55. data/app/assets/javascripts/mui_app_rails/mui.target.js +0 -58
  56. data/app/assets/javascripts/mui_app_rails/mui.view.js +0 -172
  57. data/app/assets/javascripts/mui_app_rails/popovers.js +0 -278
  58. data/app/assets/javascripts/mui_app_rails/pullrefresh.5+.js +0 -238
  59. data/app/assets/javascripts/mui_app_rails/push.js +0 -479
  60. data/app/assets/javascripts/mui_app_rails/segmented-controllers.js +0 -99
  61. data/app/assets/javascripts/mui_app_rails/sliders.js +0 -362
  62. data/app/assets/javascripts/mui_app_rails/switches.js +0 -165
  63. data/app/assets/javascripts/mui_app_rails/tableviews.js +0 -512
  64. data/app/assets/stylesheets/mui_app_rails/badges.scss +0 -88
  65. data/app/assets/stylesheets/mui_app_rails/bars.scss +0 -312
  66. data/app/assets/stylesheets/mui_app_rails/base.scss +0 -196
  67. data/app/assets/stylesheets/mui_app_rails/buttons.scss +0 -205
  68. data/app/assets/stylesheets/mui_app_rails/cards.scss +0 -62
  69. data/app/assets/stylesheets/mui_app_rails/forms.scss +0 -452
  70. data/app/assets/stylesheets/mui_app_rails/fullscreen.scss +0 -35
  71. data/app/assets/stylesheets/mui_app_rails/grid.scss +0 -75
  72. data/app/assets/stylesheets/mui_app_rails/hack.scss +0 -14
  73. data/app/assets/stylesheets/mui_app_rails/icon.scss +0 -170
  74. data/app/assets/stylesheets/mui_app_rails/iscroll.scss +0 -43
  75. data/app/assets/stylesheets/mui_app_rails/loadings.scss +0 -111
  76. data/app/assets/stylesheets/mui_app_rails/mixins.scss +0 -212
  77. data/app/assets/stylesheets/mui_app_rails/modals.scss +0 -34
  78. data/app/assets/stylesheets/mui_app_rails/mui.scss +0 -46
  79. data/app/assets/stylesheets/mui_app_rails/normalize.scss +0 -425
  80. data/app/assets/stylesheets/mui_app_rails/number.scss +0 -70
  81. data/app/assets/stylesheets/mui_app_rails/off-canvas.scss +0 -84
  82. data/app/assets/stylesheets/mui_app_rails/os.scss +0 -12
  83. data/app/assets/stylesheets/mui_app_rails/pagination.scss +0 -155
  84. data/app/assets/stylesheets/mui_app_rails/popovers.scss +0 -198
  85. data/app/assets/stylesheets/mui_app_rails/pullrefreshs.scss +0 -98
  86. data/app/assets/stylesheets/mui_app_rails/push.scss +0 -63
  87. data/app/assets/stylesheets/mui_app_rails/scroll.scss +0 -95
  88. data/app/assets/stylesheets/mui_app_rails/segmented-controls.scss +0 -150
  89. data/app/assets/stylesheets/mui_app_rails/slider-cell.scss +0 -20
  90. data/app/assets/stylesheets/mui_app_rails/sliders.scss +0 -133
  91. data/app/assets/stylesheets/mui_app_rails/switches.scss +0 -115
  92. data/app/assets/stylesheets/mui_app_rails/table-views.scss +0 -482
  93. data/app/assets/stylesheets/mui_app_rails/toast.scss +0 -16
  94. data/app/assets/stylesheets/mui_app_rails/type.scss +0 -23
  95. data/app/assets/stylesheets/mui_app_rails/variables.scss +0 -64
@@ -1,99 +0,0 @@
1
- /**
2
- * segmented-controllers
3
- * @param {type} $
4
- * @param {type} window
5
- * @param {type} document
6
- * @param {type} undefined
7
- * @returns {undefined}
8
- */
9
- (function($, window, document, name, undefined) {
10
-
11
- var CLASS_CONTROL_ITEM = $.className('control-item');
12
- var CLASS_SEGMENTED_CONTROL = $.className('segmented-control');
13
- var CLASS_CONTROL_CONTENT = $.className('control-content');
14
- var CLASS_TAB_BAR = $.className('bar-tab');
15
- var CLASS_TAB_ITEM = $.className('tab-item');
16
- var CLASS_SLIDER_ITEM = $.className('slider-item');
17
-
18
- var handle = function(event, target) {
19
- if (target.classList && (target.classList.contains(CLASS_CONTROL_ITEM) || target.classList.contains(CLASS_TAB_ITEM))) {
20
- event.preventDefault(); //stop hash change
21
- // if (target.hash) {
22
- return target;
23
- // }
24
- }
25
- return false;
26
- };
27
-
28
- $.registerTarget({
29
- name: name,
30
- index: 80,
31
- handle: handle,
32
- target: false
33
- });
34
-
35
- window.addEventListener('tap', function(e) {
36
-
37
- var targetTab = $.targets.tab;
38
- if (!targetTab) {
39
- return;
40
- }
41
- var activeTab;
42
- var activeBodies;
43
- var targetBody;
44
- var className = $.className('active');
45
- var classSelector = '.' + className;
46
- var segmentedControl = targetTab.parentNode;
47
-
48
- for (; segmentedControl && segmentedControl !== document; segmentedControl = segmentedControl.parentNode) {
49
- if (segmentedControl.classList.contains(CLASS_SEGMENTED_CONTROL)) {
50
- activeTab = segmentedControl.querySelector(classSelector + '.' + CLASS_CONTROL_ITEM);
51
- break;
52
- } else if (segmentedControl.classList.contains(CLASS_TAB_BAR)) {
53
- activeTab = segmentedControl.querySelector(classSelector + '.' + CLASS_TAB_ITEM);
54
- }
55
- }
56
-
57
-
58
- if (activeTab) {
59
- activeTab.classList.remove(className);
60
- }
61
-
62
- var isLastActive = targetTab === activeTab;
63
- if (targetTab) {
64
- targetTab.classList.add(className);
65
- }
66
-
67
- if (!targetTab.hash) {
68
- return;
69
- }
70
-
71
- targetBody = document.getElementById(targetTab.hash.replace('#', ''));
72
-
73
- if (!targetBody) {
74
- return;
75
- }
76
- if (!targetBody.classList.contains(CLASS_CONTROL_CONTENT)) { //tab bar popover
77
- targetTab.classList[isLastActive ? 'remove' : 'add'](className);
78
- return;
79
- }
80
- if (isLastActive) { //same
81
- return;
82
- }
83
- var parentNode = targetBody.parentNode;
84
- activeBodies = parentNode.querySelectorAll('.' + CLASS_CONTROL_CONTENT + classSelector);
85
- for (var i = 0; i < activeBodies.length; i++) {
86
- var activeBody = activeBodies[i];
87
- activeBody.parentNode === parentNode && activeBody.classList.remove(className);
88
- }
89
-
90
- targetBody.classList.add(className);
91
-
92
- var contents = targetBody.parentNode.querySelectorAll('.' + CLASS_CONTROL_CONTENT);
93
- $.trigger(targetBody, $.eventName('shown', name), {
94
- tabNumber: Array.prototype.indexOf.call(contents, targetBody)
95
- });
96
- e.detail && e.detail.gesture.preventDefault(); //fixed hashchange
97
- });
98
-
99
- })(mui, window, document, 'tab');
@@ -1,362 +0,0 @@
1
- /**
2
- * Slider (TODO resize)
3
- * @param {type} $
4
- * @param {type} window
5
- * @returns {undefined}
6
- */
7
- (function($, window) {
8
- var CLASS_SLIDER = $.className('slider');
9
- var CLASS_SLIDER_GROUP = $.className('slider-group');
10
- var CLASS_SLIDER_LOOP = $.className('slider-loop');
11
- var CLASS_SLIDER_INDICATOR = $.className('slider-indicator');
12
- var CLASS_ACTION_PREVIOUS = $.className('action-previous');
13
- var CLASS_ACTION_NEXT = $.className('action-next');
14
- var CLASS_SLIDER_ITEM = $.className('slider-item');
15
-
16
- var SELECTOR_SLIDER_ITEM = '.' + CLASS_SLIDER_ITEM;
17
- var SELECTOR_SLIDER_INDICATOR = '.' + CLASS_SLIDER_INDICATOR;
18
- var SELECTOR_SLIDER_PROGRESS_BAR = $.classSelector('.slider-progress-bar');
19
-
20
-
21
- var Slider = function(element, options) {
22
- this.element = element;
23
- this.options = $.extend({
24
- slideshowDelay: 0, //设置为0,则不定时轮播
25
- factor: 1
26
- }, options);
27
-
28
- this.init();
29
- };
30
- Slider.prototype.init = function() {
31
- // this.initDuplicate();
32
- this.initEvent();
33
- this.initTimer();
34
- };
35
- Slider.prototype.refresh = function(options) {
36
- var newOptions = $.extend({
37
- slideshowDelay: 0, //设置为0,则不定时轮播
38
- factor: 1
39
- }, options);
40
- if (this.options.slideshowDelay !== newOptions.slideshowDelay) {
41
- this.options.slideshowDelay = newOptions.slideshowDelay;
42
- if (this.options.slideshowDelay) {
43
- this.nextItem();
44
- }
45
- }
46
- };
47
- //TODO 暂时不做自动clone
48
- // Slider.prototype.initDuplicate = function() {
49
- // var self = this;
50
- // var element = self.element;
51
- // if (element.classList.contains(CLASS_SLIDER_LOOP)) {
52
- // var duplicates = element.getElementsByClassName(CLASS_SLIDER_ITEM_DUPLICATE);
53
- // }
54
- // };
55
- Slider.prototype.initEvent = function() {
56
- var self = this;
57
- var element = self.element;
58
- var slider = element.parentNode;
59
- self.translateX = 0;
60
- self.sliderWidth = element.offsetWidth;
61
- self.isLoop = element.classList.contains(CLASS_SLIDER_LOOP);
62
- self.sliderLength = element.querySelectorAll(SELECTOR_SLIDER_ITEM).length;
63
- self.progressBarWidth = 0;
64
- self.progressBar = slider.querySelector(SELECTOR_SLIDER_PROGRESS_BAR);
65
- if (self.progressBar) {
66
- self.progressBarWidth = self.progressBar.offsetWidth;
67
- }
68
- //slider
69
- var isDragable = false;
70
- self.isSwipeable = false;
71
- slider.addEventListener('dragstart', function(event) {
72
- var detail = event.detail;
73
- var direction = detail.direction;
74
- if (direction === 'left' || direction === 'right') { //reset
75
- isDragable = true;
76
- self.translateX = self.lastTranslateX = 0;
77
- self.scrollX = self.getScroll();
78
- self.sliderWidth = element.offsetWidth;
79
- self.isLoop = element.classList.contains(CLASS_SLIDER_LOOP);
80
- self.sliderLength = element.querySelectorAll(SELECTOR_SLIDER_ITEM).length;
81
- if (self.progressBar) {
82
- self.progressBarWidth = self.progressBar.offsetWidth;
83
- }
84
- self.maxTranslateX = ((self.sliderLength - 1) * self.sliderWidth);
85
- event.detail.gesture.preventDefault();
86
- var isStopPropagation = true;
87
- if (!self.isLoop) {
88
- if (direction === 'right' && self.scrollX === 0) {
89
- isStopPropagation = false;
90
- } else if (direction === 'left' && self.scrollX === -self.maxTranslateX) {
91
- isStopPropagation = false;
92
- }
93
- }
94
- isStopPropagation && event.stopPropagation();
95
- }
96
- });
97
- slider.addEventListener('drag', function(event) {
98
- if (isDragable) {
99
- self.dragItem(event);
100
- event.stopPropagation();
101
- }
102
-
103
- });
104
- slider.addEventListener('dragend', function(event) {
105
- if (isDragable) {
106
- self.gotoItem(self.getSlideNumber());
107
- isDragable = self.isSwipeable = false;
108
- event.stopPropagation();
109
- }
110
- });
111
- // slider.addEventListener('flick', $.stopPropagation);
112
- slider.addEventListener('swipeleft', function(event) {
113
- if (self.isSwipeable) {
114
- //stop dragend
115
- $.gestures.stoped = true;
116
- self.nextItem();
117
- isDragable = self.isSwipeable = false;
118
- }
119
- event.stopPropagation();
120
- });
121
- slider.addEventListener('swiperight', function(event) {
122
- if (self.isSwipeable) {
123
- //stop dragend
124
- $.gestures.stoped = true;
125
- self.prevItem();
126
- isDragable = self.isSwipeable = false;
127
- }
128
- event.stopPropagation();
129
- });
130
- slider.addEventListener('slide', function(e) {
131
- var detail = e.detail;
132
- detail.slideNumber = detail.slideNumber || 0;
133
- var number = slider.querySelector($.classSelector('.slider-indicator .number span'));
134
- if (number) {
135
- number.innerText = (detail.slideNumber + 1);
136
- }
137
-
138
- var indicators = slider.querySelectorAll($.classSelector('.slider-indicator .indicator'));
139
- for (var i = 0, len = indicators.length; i < len; i++) {
140
- indicators[i].classList[i === detail.slideNumber ? 'add' : 'remove']($.className('active'));
141
- }
142
-
143
- var controlItems = slider.querySelectorAll($.classSelector('.control-item'));
144
- for (var i = 0, len = controlItems.length; i < len; i++) {
145
- controlItems[i].classList[i === detail.slideNumber ? 'add' : 'remove']($.className('active'));
146
- }
147
- e.stopPropagation();
148
- });
149
- slider.addEventListener($.eventName('shown', 'tab'), function(e) { //tab
150
- self.gotoItem(-(e.detail.tabNumber || 0));
151
- });
152
- //indicator
153
- var indicator = element.parentNode.querySelector(SELECTOR_SLIDER_INDICATOR);
154
- if (indicator) {
155
- indicator.addEventListener('tap', function(event) {
156
- var target = event.target;
157
- if (target.classList.contains(CLASS_ACTION_PREVIOUS) || target.classList.contains(CLASS_ACTION_NEXT)) {
158
- self[target.classList.contains(CLASS_ACTION_PREVIOUS) ? 'prevItem' : 'nextItem']();
159
- event.stopPropagation();
160
- }
161
- });
162
- }
163
- };
164
- Slider.prototype.dragItem = function(event) {
165
- var self = this;
166
- var detail = event.detail;
167
-
168
- if (detail.deltaX !== detail.lastDeltaX) {
169
- var translate = (detail.deltaX * self.options.factor + self.scrollX);
170
- self.element.style['-webkit-transition-duration'] = '0';
171
- var min = 0;
172
- var max = -self.maxTranslateX;
173
- if (self.isLoop) {
174
- min = self.sliderWidth;
175
- max = max + min;
176
- }
177
- if (translate > min || translate < max) {
178
- self.isSwipeable = false;
179
- return;
180
- }
181
- if (!self.requestAnimationFrame) {
182
- self.updateTranslate();
183
- }
184
- self.isSwipeable = true;
185
- self.translateX = translate;
186
- }
187
- if (self.timer) {
188
- clearTimeout(self.timer);
189
- }
190
- self.timer = setTimeout(function() {
191
- self.initTimer();
192
- }, 100);
193
-
194
- };
195
- Slider.prototype.updateTranslate = function() {
196
- var self = this;
197
- if (self.lastTranslateX !== self.translateX) {
198
- self.setTranslate(self.translateX);
199
- self.lastTranslateX = self.translateX;
200
- }
201
- self.requestAnimationFrame = requestAnimationFrame(function() {
202
- self.updateTranslate();
203
- });
204
- };
205
- Slider.prototype.setTranslate = function(x) {
206
- this.element.style.webkitTransform = 'translate3d(' + x + 'px,0,0)';
207
- this.updateProcess(x);
208
- };
209
- Slider.prototype.updateProcess = function(translate) {
210
- var progressBarWidth = this.progressBarWidth;
211
- if (progressBarWidth) {
212
- translate = Math.abs(translate);
213
- this.setProcess(translate * (progressBarWidth / this.sliderWidth));
214
- }
215
- };
216
- Slider.prototype.setProcess = function(translate) {
217
- var progressBar = this.progressBar;
218
- if (progressBar) {
219
- progressBar.style.webkitTransform = 'translate3d(' + translate + 'px,0,0)';
220
- }
221
- };
222
- /**
223
- * 下一个轮播
224
- * @returns {Number}
225
- */
226
- Slider.prototype.nextItem = function() {
227
- this.gotoItem(this.getCurrentSlideNumber('next') - 1);
228
- };
229
- /**
230
- * 上一个轮播
231
- * @returns {Number}
232
- */
233
- Slider.prototype.prevItem = function() {
234
- this.gotoItem(this.getCurrentSlideNumber('prev') + 1);
235
- };
236
- /**
237
- * 滑动到指定轮播
238
- * @param {type} slideNumber
239
- * @returns {undefined}
240
- */
241
- Slider.prototype.gotoItem = function(slideNumber) {
242
- if (!(slideNumber === 1 && this.getSlideNumber() === slideNumber)) {
243
- slideNumber = slideNumber > 0 ? -slideNumber : slideNumber;
244
- }
245
- var self = this;
246
- var slider = self.element;
247
- var slideLength = self.sliderLength;
248
- if (self.isLoop) { //循环轮播需减去2个过渡元素
249
- slideLength = slideLength - 2;
250
- } else {
251
- slideLength = slideLength - 1;
252
- slideNumber = Math.min(0, slideNumber);
253
- slideNumber = Math.max(slideNumber, -slideLength);
254
- }
255
- if (self.requestAnimationFrame) {
256
- cancelAnimationFrame(self.requestAnimationFrame);
257
- self.requestAnimationFrame = null;
258
- }
259
- var offsetX = Math.max(slideNumber, -slideLength) * slider.offsetWidth;
260
- slider.style['-webkit-transition-duration'] = '.2s';
261
- self.setTranslate(offsetX);
262
- // slider.style.webkitTransform = 'translate3d(' + offsetX + 'px,0,0)';
263
- // self.updateProcess(offsetX);
264
- var fixedLoop = function() {
265
- slider.style['-webkit-transition-duration'] = '0';
266
- slider.style.webkitTransform = 'translate3d(' + (slideNumber * slider.offsetWidth) + 'px,0,0)';
267
- slider.removeEventListener('webkitTransitionEnd', fixedLoop);
268
- };
269
- slider.removeEventListener('webkitTransitionEnd', fixedLoop);
270
- if (self.isLoop) { //循环轮播自动重新定位
271
- if (slideNumber === 1 || slideNumber === -slideLength) {
272
- slideNumber = slideNumber === 1 ? (-slideLength + 1) : 0;
273
- slider.addEventListener('webkitTransitionEnd', fixedLoop);
274
- }
275
- }
276
- $.trigger(slider.parentNode, 'slide', {
277
- slideNumber: Math.abs(slideNumber)
278
- });
279
- this.initTimer();
280
- };
281
-
282
- /**
283
- * 计算轮播应该处于的位置(四舍五入)
284
- * @returns {Number}
285
- */
286
- Slider.prototype.getSlideNumber = function() {
287
- return (Math.round(this.getScroll() / this.sliderWidth));
288
- };
289
- /**
290
- * 当前所处位置
291
- * @param {type} type
292
- * @returns {unresolved}
293
- */
294
- Slider.prototype.getCurrentSlideNumber = function(type) {
295
- return (Math[type === 'next' ? 'ceil' : 'floor'](this.getScroll() / this.sliderWidth));
296
- };
297
- /**
298
- * 获取当前滚动位置
299
- * @returns {Number}
300
- */
301
- Slider.prototype.getScroll = function() {
302
- var slider = this.element;
303
- var scroll = 0;
304
- if ('webkitTransform' in slider.style) {
305
- var result = $.parseTranslate(slider.style.webkitTransform);
306
- scroll = result ? result.x : 0;
307
- }
308
- return scroll;
309
- };
310
- /**
311
- * 自动轮播
312
- * @returns {undefined}
313
- */
314
- Slider.prototype.initTimer = function() {
315
- var self = this;
316
- var slideshowDelay = self.options.slideshowDelay;
317
- if (slideshowDelay) {
318
- var slider = self.element;
319
- var slidershowTimer = slider.getAttribute('data-slidershowTimer');
320
- slidershowTimer && window.clearTimeout(slidershowTimer);
321
- slidershowTimer = window.setTimeout(function() {
322
- if (!slider) {
323
- return;
324
- }
325
- //仅slider显示状态进行自动轮播
326
- if (!!(slider.offsetWidth || slider.offsetHeight)) {
327
- self.nextItem();
328
- //下一个
329
- }
330
- self.initTimer();
331
- }, slideshowDelay);
332
- slider.setAttribute('data-slidershowTimer', slidershowTimer);
333
- }
334
-
335
- };
336
-
337
- $.fn.slider = function(options) {
338
- //新增定时轮播 重要:remove该轮播时,请获取data-slidershowTimer然后手动clearTimeout
339
- var slider = null;
340
- this.each(function() {
341
- var sliderGroup = this;
342
- if (this.classList.contains(CLASS_SLIDER)) {
343
- sliderGroup = this.querySelector('.' + CLASS_SLIDER_GROUP);
344
- }
345
- var id = sliderGroup.getAttribute('data-slider');
346
- if (!id) {
347
- id = ++$.uuid;
348
- $.data[id] = slider = new Slider(sliderGroup, options);
349
- sliderGroup.setAttribute('data-slider', id);
350
- } else {
351
- slider = $.data[id];
352
- if (slider && options) {
353
- slider.refresh(options);
354
- }
355
- }
356
- });
357
- return slider;
358
- };
359
- $.ready(function() {
360
- $($.classSelector('.slider-group')).slider();
361
- });
362
- })(mui, window);
@@ -1,165 +0,0 @@
1
- /**
2
- * Toggles switch
3
- * @param {type} $
4
- * @param {type} window
5
- * @param {type} name
6
- * @returns {undefined}
7
- */
8
- (function($, window, name) {
9
-
10
- var CLASS_SWITCH = $.className('switch');
11
- var CLASS_SWITCH_HANDLE = $.className('switch-handle');
12
- var CLASS_ACTIVE = $.className('active');
13
- var CLASS_DRAGGING = $.className('dragging');
14
-
15
- var CLASS_DISABLED = $.className('disabled');
16
-
17
- var SELECTOR_SWITCH_HANDLE = '.' + CLASS_SWITCH_HANDLE;
18
-
19
- var handle = function(event, target) {
20
- if (target.classList && target.classList.contains(CLASS_SWITCH)) {
21
- return target;
22
- }
23
- return false;
24
- };
25
-
26
- $.registerTarget({
27
- name: name,
28
- index: 100,
29
- handle: handle,
30
- target: false
31
- });
32
-
33
-
34
- var Toggle = function(element) {
35
- this.element = element;
36
- this.classList = this.element.classList;
37
- this.handle = this.element.querySelector(SELECTOR_SWITCH_HANDLE);
38
- this.init();
39
- this.initEvent();
40
- };
41
- Toggle.prototype.init = function() {
42
- this.toggleWidth = this.element.offsetWidth;
43
- this.handleWidth = this.handle.offsetWidth;
44
- this.handleX = this.toggleWidth - this.handleWidth - 3;
45
- };
46
- Toggle.prototype.initEvent = function() {
47
- this.element.addEventListener('touchstart', this);
48
- this.element.addEventListener('drag', this);
49
- this.element.addEventListener('swiperight', this);
50
- this.element.addEventListener('touchend', this);
51
- this.element.addEventListener('touchcancel', this);
52
-
53
- };
54
- Toggle.prototype.handleEvent = function(e) {
55
- if (this.classList.contains(CLASS_DISABLED)) {
56
- return;
57
- }
58
- switch (e.type) {
59
- case 'touchstart':
60
- this.start(e);
61
- break;
62
- case 'drag':
63
- this.drag(e);
64
- break;
65
- case 'swiperight':
66
- this.swiperight();
67
- break;
68
- case 'touchend':
69
- case 'touchcancel':
70
- this.end(e);
71
- break;
72
- }
73
- };
74
- Toggle.prototype.start = function(e) {
75
- this.classList.add(CLASS_DRAGGING);
76
- if (this.toggleWidth === 0 || this.handleWidth === 0) { //当switch处于隐藏状态时,width为0,需要重新初始化
77
- this.init();
78
- }
79
- };
80
- Toggle.prototype.drag = function(e) {
81
- var detail = e.detail;
82
- if (!this.isDragging) {
83
- if (detail.direction === 'left' || detail.direction === 'right') {
84
- this.isDragging = true;
85
- this.lastChanged = undefined;
86
- this.initialState = this.classList.contains(CLASS_ACTIVE);
87
- }
88
- }
89
- if (this.isDragging) {
90
- this.setTranslateX(detail.deltaX);
91
- e.stopPropagation();
92
- detail.gesture.preventDefault();
93
- }
94
- };
95
- Toggle.prototype.swiperight = function(e) {
96
- if (this.isDragging) {
97
- e.stopPropagation();
98
- }
99
- };
100
- Toggle.prototype.end = function(e) {
101
- this.classList.remove(CLASS_DRAGGING);
102
- if (this.isDragging) {
103
- this.isDragging = false;
104
- e.stopPropagation();
105
- $.trigger(this.element, 'toggle', {
106
- isActive: this.classList.contains(CLASS_ACTIVE)
107
- });
108
- } else {
109
- this.toggle();
110
- }
111
- };
112
- Toggle.prototype.toggle = function() {
113
- var classList = this.classList;
114
- if (classList.contains(CLASS_ACTIVE)) {
115
- classList.remove(CLASS_ACTIVE);
116
- this.handle.style.webkitTransform = 'translate3d(0,0,0)';
117
- } else {
118
- classList.add(CLASS_ACTIVE);
119
- this.handle.style.webkitTransform = 'translate3d(' + this.handleX + 'px,0,0)';
120
- }
121
- $.trigger(this.element, 'toggle', {
122
- isActive: this.classList.contains(CLASS_ACTIVE)
123
- });
124
- };
125
- Toggle.prototype.setTranslateX = $.animationFrame(function(x) {
126
- if (!this.isDragging) {
127
- return;
128
- }
129
- var isChanged = false;
130
- if ((this.initialState && -x > (this.handleX / 2)) || (!this.initialState && x > (this.handleX / 2))) {
131
- isChanged = true;
132
- }
133
- if (this.lastChanged !== isChanged) {
134
- if (isChanged) {
135
- this.handle.style.webkitTransform = 'translate3d(' + (this.initialState ? 0 : this.handleX) + 'px,0,0)';
136
- this.classList[this.initialState ? 'remove' : 'add'](CLASS_ACTIVE);
137
- } else {
138
- this.handle.style.webkitTransform = 'translate3d(' + (this.initialState ? this.handleX : 0) + 'px,0,0)';
139
- this.classList[this.initialState ? 'add' : 'remove'](CLASS_ACTIVE);
140
- }
141
- this.lastChanged = isChanged;
142
- }
143
-
144
- });
145
-
146
- $.fn['switch'] = function(options) {
147
- var switchApis = [];
148
- this.each(function() {
149
- var switchApi = null;
150
- var id = this.getAttribute('data-switch');
151
- if (!id) {
152
- id = ++$.uuid;
153
- $.data[id] = new Toggle(this);
154
- this.setAttribute('data-switch', id);
155
- } else {
156
- switchApi = $.data[id];
157
- }
158
- switchApis.push(switchApi);
159
- });
160
- return switchApis.length > 1 ? switchApis : switchApis[0];
161
- };
162
- $.ready(function() {
163
- $('.' + CLASS_SWITCH)['switch']();
164
- });
165
- })(mui, window, 'toggle');