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,332 +0,0 @@
1
- (function($, window) {
2
- var CLASS_SLIDER = $.className('slider');
3
- var CLASS_SLIDER_GROUP = $.className('slider-group');
4
- var CLASS_SLIDER_LOOP = $.className('slider-loop');
5
- var CLASS_SLIDER_INDICATOR = $.className('slider-indicator');
6
- var CLASS_ACTION_PREVIOUS = $.className('action-previous');
7
- var CLASS_ACTION_NEXT = $.className('action-next');
8
- var CLASS_SLIDER_ITEM = $.className('slider-item');
9
-
10
- var CLASS_ACTIVE = $.className('active');
11
-
12
- var SELECTOR_SLIDER_ITEM = '.' + CLASS_SLIDER_ITEM;
13
- var SELECTOR_SLIDER_INDICATOR = '.' + CLASS_SLIDER_INDICATOR;
14
- var SELECTOR_SLIDER_PROGRESS_BAR = $.classSelector('.slider-progress-bar');
15
-
16
-
17
- var Slider = $.Scroll.extend({
18
- init: function(element, options) {
19
- this._super(element, $.extend(true, {
20
- interval: 0, //设置为0,则不定时轮播
21
- scrollY: false,
22
- scrollX: true,
23
- indicators: false,
24
- bounceTime: 200,
25
- startX: false
26
- }, options));
27
- if (this.options.startX) {
28
- $.trigger(this.wrapper, 'scrollend', this);
29
- }
30
- },
31
- _init: function() {
32
- var scrollers = this.wrapper.querySelectorAll('.' + CLASS_SLIDER_GROUP);
33
- for (var i = 0, len = scrollers.length; i < len; i++) {
34
- if (scrollers[i].parentNode === this.wrapper) {
35
- this.scroller = scrollers[i];
36
- break;
37
- }
38
- }
39
- if (this.scroller) {
40
- this.scrollerStyle = this.scroller.style;
41
- this.progressBar = this.wrapper.querySelector(SELECTOR_SLIDER_PROGRESS_BAR);
42
- if (this.progressBar) {
43
- this.progressBarWidth = this.progressBar.offsetWidth;
44
- this.progressBarStyle = this.progressBar.style;
45
- }
46
- //忘记这个代码是干什么的了?
47
- // this.x = this._getScroll();
48
- // if (this.options.startX === false) {
49
- // this.options.startX = this.x;
50
- // }
51
- //根据active修正startX
52
-
53
- this._super();
54
- this._initTimer();
55
- }
56
- },
57
- _initEvent: function() {
58
- var self = this;
59
- self._super();
60
- self.wrapper.addEventListener('swiperight', $.stopPropagation);
61
- self.wrapper.addEventListener('scrollend', function() {
62
- self.isInTransition = false;
63
- var oldSlideNumber = self.slideNumber;
64
- self.slideNumber = self._getSlideNumber();
65
- var slideNumber = self.slideNumber;
66
- if (self.loop) {
67
- if (self.slideNumber === 0) {
68
- self.slideNumber = self.itemLength - 2;
69
- self.setTranslate(-self.wrapperWidth * (self.itemLength - 2), 0);
70
- } else if (self.slideNumber === (self.itemLength - 1)) {
71
- self.slideNumber = 1;
72
- self.setTranslate(-self.wrapperWidth, 0);
73
- }
74
- slideNumber = self.slideNumber - 1;
75
- }
76
- self.slideNumber = slideNumber;
77
- if (oldSlideNumber !== self.slideNumber) {
78
- $.trigger(self.wrapper, 'slide', {
79
- slideNumber: slideNumber
80
- });
81
- }
82
-
83
- });
84
- self.wrapper.addEventListener('slide', function(e) {
85
- if (e.target !== self.wrapper) {
86
- return;
87
- }
88
- var detail = e.detail;
89
- detail.slideNumber = detail.slideNumber || 0;
90
- var items = self.wrapper.querySelectorAll(SELECTOR_SLIDER_ITEM);
91
- var _slideNumber = detail.slideNumber;
92
- if (self.loop) {
93
- _slideNumber += 1;
94
- }
95
- for (var i = 0, len = items.length; i < len; i++) {
96
- var item = items[i];
97
- if (item.parentNode === self.scroller) {
98
- if (i === _slideNumber) {
99
- item.classList.add(CLASS_ACTIVE);
100
- } else {
101
- item.classList.remove(CLASS_ACTIVE);
102
- }
103
- }
104
- }
105
- if (self.wrapper.classList.contains($.className('segmented-control'))) { //segmented and slider
106
- var controlItem = self.scroller.querySelector('.' + CLASS_ACTIVE + '.' + CLASS_SLIDER_ITEM + ' .' + $.className('control-item'));
107
- if (controlItem) {
108
- $.trigger(controlItem, 'touchstart'); //targets实现机制太麻烦,后续必须重构
109
- $.trigger(controlItem, 'tap');
110
- }
111
- }
112
- var indicatorWrap = self.wrapper.querySelector($.classSelector('.slider-indicator'));
113
- if (indicatorWrap) {
114
- // if (indicatorWrap.classList.contains(CLASS_SLIDER)) { //indicator is a slider
115
- // var indicatorSliderItems = indicatorWrap.querySelectorAll(CLASS_SLIDER_ITEM);
116
- // Math.ceil(self.itemLength / indicatorSliderItems.length);
117
- // }
118
- var indicators = indicatorWrap.querySelectorAll($.classSelector('.indicator'));
119
- if (indicators.length > 0) { //图片轮播
120
- for (var i = 0, len = indicators.length; i < len; i++) {
121
- indicators[i].classList[i === detail.slideNumber ? 'add' : 'remove'](CLASS_ACTIVE);
122
- }
123
- } else {
124
- var number = indicatorWrap.querySelector($.classSelector('.number span'));
125
- if (number) { //图文表格
126
- number.innerText = (detail.slideNumber + 1);
127
- } else { //segmented controls
128
- var controlItems = self.wrapper.querySelectorAll($.classSelector('.control-item'));
129
- for (var i = 0, len = controlItems.length; i < len; i++) {
130
- controlItems[i].classList[i === detail.slideNumber ? 'add' : 'remove'](CLASS_ACTIVE);
131
- }
132
- }
133
- }
134
- }
135
- e.stopPropagation();
136
- });
137
-
138
- self.wrapper.addEventListener($.eventName('shown', 'tab'), function(e) { //tab
139
- console.log('e.detail.tabNumber:::' + e.detail.tabNumber);
140
- self.gotoItem((e.detail.tabNumber || 0), self.options.bounceTime);
141
- });
142
- //indicator
143
- var indicator = self.wrapper.querySelector(SELECTOR_SLIDER_INDICATOR);
144
- if (indicator) {
145
- indicator.addEventListener('tap', function(event) {
146
- var target = event.target;
147
- if (target.classList.contains(CLASS_ACTION_PREVIOUS) || target.classList.contains(CLASS_ACTION_NEXT)) {
148
- self[target.classList.contains(CLASS_ACTION_PREVIOUS) ? 'prevItem' : 'nextItem']();
149
- event.stopPropagation();
150
- }
151
- });
152
- }
153
- },
154
- _drag: function(e) {
155
- this._super(e);
156
- var direction = e.detail.direction;
157
- if (direction === 'left' || direction === 'right') {
158
- e.stopPropagation();
159
- }
160
- },
161
- _initTimer: function() {
162
- var self = this;
163
- var slider = self.wrapper;
164
- var interval = self.options.interval;
165
- var slidershowTimer = slider.getAttribute('data-slidershowTimer');
166
- slidershowTimer && window.clearTimeout(slidershowTimer);
167
- if (interval) {
168
- slidershowTimer = window.setTimeout(function() {
169
- if (!slider) {
170
- return;
171
- }
172
- //仅slider显示状态进行自动轮播
173
- if (!!(slider.offsetWidth || slider.offsetHeight)) {
174
- self.nextItem(true);
175
- //下一个
176
- }
177
- self._initTimer();
178
- }, interval);
179
- slider.setAttribute('data-slidershowTimer', slidershowTimer);
180
- }
181
- },
182
- _reLayout: function() {
183
- this.hasHorizontalScroll = true;
184
- this.loop = this.scroller.classList.contains(CLASS_SLIDER_LOOP);
185
- //以防slider类嵌套使用
186
- var items = this.scroller.querySelectorAll(SELECTOR_SLIDER_ITEM);
187
- this.itemLength = 0;
188
- var current = 0;
189
- for (var i = 0, len = items.length; i < len; i++) {
190
- if (items[i].parentNode === this.scroller) {
191
- if (items[i].classList.contains(CLASS_ACTIVE)) {
192
- current = this.itemLength;
193
- }
194
- this.itemLength++;
195
- }
196
- }
197
- current = current === 0 ? (this.loop ? 1 : 0) : current;
198
- //根据active修正startX
199
- this.options.startX = current ? -this.scrollerWidth * current : 0;
200
- this.scrollerWidth = this.itemLength * this.scrollerWidth;
201
- this.maxScrollX = Math.min(this.wrapperWidth - this.scrollerWidth, 0);
202
- this.slideNumber = this._getSlideNumber();
203
- this._super();
204
- },
205
- _getScroll: function() {
206
- var result = $.parseTranslateMatrix($.getStyles(this.scroller, 'webkitTransform'));
207
- return result ? result.x : 0;
208
- },
209
- _getSlideNumber: function() {
210
- return Math.abs(Math.round(Math.abs(this.x) / this.wrapperWidth));
211
- },
212
- _transitionEnd: function(e) {
213
- if (e.target !== this.scroller || !this.isInTransition) {
214
- return;
215
- }
216
- this._transitionTime();
217
- this.isInTransition = false;
218
- $.trigger(this.wrapper, 'scrollend', this);
219
- },
220
- _flick: function(e) {
221
- var detail = e.detail;
222
- var direction = detail.direction;
223
- this._clearRequestAnimationFrame();
224
- this.isInTransition = true;
225
- if (direction === 'up' || direction === 'down') {
226
- this.resetPosition(this.options.bounceTime);
227
- return;
228
- }
229
- if (e.type === 'flick') {
230
- if (detail.touchTime < 200) { //flick,太容易触发,额外校验一下touchtime
231
- this.x = -(this.slideNumber + (direction === 'left' ? 1 : -1)) * this.wrapperWidth;
232
- }
233
- this.resetPosition(this.options.bounceTime);
234
- } else if (e.type === 'dragend' && !detail.flick) {
235
- this.resetPosition(this.options.bounceTime);
236
- }
237
- e.stopPropagation();
238
- },
239
- _gotoItem: function(slideNumber, time) {
240
- this.scrollTo(-slideNumber * this.wrapperWidth, 0, time, this.options.bounceEasing);
241
- if (time === 0) {
242
- $.trigger(this.wrapper, 'scrollend', this);
243
- }
244
- this._initTimer();
245
- },
246
- _fixedSlideNumber: function(slideNumber) {
247
- if (!this.loop) {
248
- if (slideNumber < 0) {
249
- slideNumber = 0;
250
- } else if (slideNumber >= this.itemLength) {
251
- slideNumber = this.itemLength - 1;
252
- }
253
- }
254
- return slideNumber;
255
- },
256
- //API
257
- setTranslate: function(x, y) {
258
- this._super(x, y);
259
- var progressBar = this.progressBar;
260
- if (progressBar) {
261
- this.progressBarStyle.webkitTransform = 'translate3d(' + (-x * (this.progressBarWidth / this.wrapperWidth)) + 'px,0,0)';
262
- }
263
- },
264
- resetPosition: function(time) {
265
- time = time || 0;
266
- if (this.x > 0) {
267
- this.x = 0;
268
- } else if (this.x < this.maxScrollX) {
269
- this.x = this.maxScrollX;
270
- }
271
- this._gotoItem(this._getSlideNumber(), time);
272
- return true;
273
- },
274
- gotoItem: function(slideNumber, time) {
275
- this._gotoItem(this._fixedSlideNumber(this.loop ? (slideNumber + 1) : slideNumber), time || this.options.bounceEasing);
276
- },
277
- nextItem: function(auto) {
278
- var slideNumber = this._fixedSlideNumber(this.slideNumber + 1);
279
- var bounceTime = this.options.bounceTime;
280
- if (auto && !this.loop) {
281
- if (this.slideNumber + 1 >= this.itemLength) {
282
- bounceTime = slideNumber = 0;
283
- }
284
- }
285
- this._gotoItem(slideNumber, bounceTime);
286
- // if (!auto) { //TODO 这个设置后续还得仔细过一遍
287
- // this.isInTransition = false;
288
- // }
289
- },
290
- prevItem: function() {
291
- this._gotoItem(this._fixedSlideNumber(this.slideNumber - 1), this.options.bounceTime);
292
- },
293
- refresh: function(options) {
294
- if (options) {
295
- $.extend(this.options, options);
296
- this._super();
297
- this._gotoItem(this._getSlideNumber() + 1, this.options.bounceTime);
298
- } else {
299
- this._super();
300
- }
301
- }
302
- });
303
- $.fn.slider = function(options) {
304
- var slider = null;
305
- this.each(function() {
306
- var sliderElement = this;
307
- if (!this.classList.contains(CLASS_SLIDER)) {
308
- sliderElement = this.querySelector('.' + CLASS_SLIDER);
309
- }
310
- if (sliderElement) {
311
- var id = sliderElement.getAttribute('data-slider');
312
- if (!id) {
313
- id = ++$.uuid;
314
- $.data[id] = slider = new Slider(sliderElement, options);
315
- sliderElement.setAttribute('data-slider', id);
316
- } else {
317
- slider = $.data[id];
318
- if (slider && options) {
319
- slider.refresh(options);
320
- }
321
- }
322
- }
323
- });
324
- return slider;
325
- };
326
- $.ready(function() {
327
- // setTimeout(function() {
328
- $($.classSelector('.slider')).slider();
329
- // }, 500); //临时处理slider宽度计算不正确的问题(初步确认是scrollbar导致的)
330
-
331
- });
332
- })(mui, window);
@@ -1,18 +0,0 @@
1
- /**
2
- * $.os.plus
3
- * @param {type} $
4
- * @returns {undefined}
5
- */
6
- (function($, document) {
7
- function detect(ua) {
8
- this.os = this.os || {};
9
- var plus = ua.match(/Html5Plus/i); //TODO 5\+Browser?
10
- if (plus) {
11
- this.os.plus = true;
12
- $(function() {
13
- document.body.classList.add($.className('plus'));
14
- });
15
- }
16
- }
17
- detect.call($, navigator.userAgent);
18
- })(mui, document);
@@ -1,50 +0,0 @@
1
- /**
2
- * $.os
3
- * @param {type} $
4
- * @returns {undefined}
5
- */
6
- (function($, window) {
7
- function detect(ua) {
8
- this.os = {};
9
- var funcs = [
10
-
11
- function() { //wechat
12
- var wechat = ua.match(/(MicroMessenger)\/([\d\.]+)/i);
13
- if (wechat) { //wechat
14
- this.os.wechat = {
15
- version: wechat[2].replace(/_/g, '.')
16
- };
17
- }
18
- return false;
19
- },
20
- function() { //android
21
- var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/);
22
- if (android) {
23
- this.os.android = true;
24
- this.os.version = android[2];
25
-
26
- this.os.isBadAndroid = !(/Chrome\/\d/.test(window.navigator.appVersion));
27
- }
28
- return this.os.android === true;
29
- },
30
- function() { //ios
31
- var iphone = ua.match(/(iPhone\sOS)\s([\d_]+)/);
32
- if (iphone) { //iphone
33
- this.os.ios = this.os.iphone = true;
34
- this.os.version = iphone[2].replace(/_/g, '.');
35
- } else {
36
- var ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
37
- if (ipad) { //ipad
38
- this.os.ios = this.os.ipad = true;
39
- this.os.version = ipad[2].replace(/_/g, '.');
40
- }
41
- }
42
- return this.os.ios === true;
43
- }
44
- ];
45
- [].every.call(funcs, function(func) {
46
- return !func.call($);
47
- });
48
- }
49
- detect.call($, navigator.userAgent);
50
- })(mui, window);
@@ -1,27 +0,0 @@
1
- (function($, window) {
2
- /**
3
- * 警告消息框
4
- */
5
- $.alert = function(message,title,btnValue,callback) {
6
- if ($.os.plus) {
7
- if(typeof message === undefined){
8
- return;
9
- }else{
10
- if(typeof title ==='function'){
11
- callback = title;
12
- title = null;
13
- btnValue = '确定';
14
- }else if(typeof btnValue ==='function'){
15
- callback = btnValue;
16
- btnValue = null;
17
- }
18
- plus.nativeUI.alert(message,callback,title,btnValue);
19
- }
20
-
21
- }else{
22
- //TODO H5版本
23
- window.alert(message);
24
- }
25
- };
26
-
27
- })(mui, window);
@@ -1,27 +0,0 @@
1
- (function($, window) {
2
- /**
3
- * 确认消息框
4
- */
5
- $.confirm = function(message,title,btnArray,callback) {
6
- if ($.os.plus) {
7
- if(typeof message === undefined){
8
- return;
9
- }else{
10
- if(typeof title ==='function'){
11
- callback = title;
12
- title = null;
13
- btnArray = null;
14
- }else if(typeof btnArray ==='function'){
15
- callback = btnArray;
16
- btnArray = null;
17
- }
18
- plus.nativeUI.confirm(message,callback,title,btnArray);
19
- }
20
-
21
- }else{
22
- //TODO H5版本
23
- window.confirm(message);
24
- }
25
- };
26
-
27
- })(mui, window);
@@ -1,33 +0,0 @@
1
- (function($, window) {
2
- /**
3
- * 输入对话框
4
- */
5
- $.prompt = function(text,defaultText,title,btnArray,callback) {
6
- if ($.os.plus) {
7
- if(typeof message === undefined){
8
- return;
9
- }else{
10
-
11
- if(typeof defaultText ==='function'){
12
- callback = defaultText;
13
- defaultText = null;
14
- title = null;
15
- btnArray = null;
16
- }else if(typeof title === 'function'){
17
- callback = title;
18
- title = null;
19
- btnArray = null;
20
- }else if(typeof btnArray ==='function'){
21
- callback = btnArray;
22
- btnArray = null;
23
- }
24
- plus.nativeUI.prompt(text,callback,title,defaultText,btnArray);
25
- }
26
-
27
- }else{
28
- //TODO H5版本
29
- window.prompt(text);
30
- }
31
- };
32
-
33
- })(mui, window);
@@ -1,20 +0,0 @@
1
- (function($, window) {
2
- /**
3
- * 自动消失提示框
4
- */
5
- $.toast = function(message) {
6
- if($.os.plus){
7
- //默认显示在底部;
8
- plus.nativeUI.toast(message,{verticalAlign:'bottom'});
9
- }else{
10
- var toast = document.createElement('div');
11
- toast.classList.add($.className('toast-container'));
12
- toast.innerHTML = '<div class="'+$.className('toast-message')+'">'+message+'</div>';
13
- document.body.appendChild(toast);
14
- setTimeout(function(){
15
- document.body.removeChild(toast);
16
- },2000);
17
- }
18
- };
19
-
20
- })(mui, window);
@@ -1,160 +0,0 @@
1
- /**
2
- * 仅提供简单的on,off(仅支持事件委托,不支持当前元素绑定,当前元素绑定请直接使用addEventListener,removeEventListener)
3
- * @param {Object} $
4
- */
5
- (function($) {
6
-
7
- var _mid = 1;
8
- var delegates = {};
9
- //需要wrap的函数
10
- var eventMethods = {
11
- preventDefault: 'isDefaultPrevented',
12
- stopImmediatePropagation: 'isImmediatePropagationStopped',
13
- stopPropagation: 'isPropagationStopped'
14
- };
15
- //默认true返回函数
16
- var returnTrue = function() {
17
- return true
18
- };
19
- //默认false返回函数
20
- var returnFalse = function() {
21
- return false
22
- };
23
- //wrap浏览器事件
24
- var compatible = function(event, target) {
25
- if (!event.detail) {
26
- event.detail = {
27
- currentTarget: target
28
- };
29
- } else {
30
- event.detail.currentTarget = target;
31
- }
32
- $.each(eventMethods, function(name, predicate) {
33
- var sourceMethod = event[name];
34
- event[name] = function() {
35
- this[predicate] = returnTrue;
36
- return sourceMethod && sourceMethod.apply(event, arguments)
37
- }
38
- event[predicate] = returnFalse;
39
- });
40
- return event;
41
- };
42
- //简单的wrap对象_mid
43
- var mid = function(obj) {
44
- return obj._mid || (obj._mid = _mid++);
45
- };
46
- //事件委托对象绑定的事件回调列表
47
- var delegateFns = {};
48
- //返回事件委托的wrap事件回调
49
- var delegateFn = function(element, event, selector, callback) {
50
- return function(e) {
51
- //same event
52
- var callbackObjs = delegates[element._mid][event];
53
- var handlerQueue = [];
54
- var target = e.target;
55
- var selectorAlls = {};
56
- for (; target && target !== document; target = target.parentNode) {
57
- if (target === element) {
58
- break;
59
- }
60
- if (~['click', 'tap', 'doubletap', 'longtap', 'hold'].indexOf(event) && (target.disabled || target.classList.contains($.className('disabled')))) {
61
- break;
62
- }
63
- var matches = {};
64
- $.each(callbackObjs, function(selector, callbacks) { //same selector
65
- if (~(selectorAlls[selector] || (selectorAlls[selector] = $.qsa(selector, element))).indexOf(target)) {
66
- if (!matches[selector]) {
67
- matches[selector] = callbacks;
68
- }
69
- }
70
- });
71
- if (!$.isEmptyObject(matches)) {
72
- handlerQueue.push({
73
- element: target,
74
- handlers: matches
75
- });
76
- }
77
- }
78
- selectorAlls = null;
79
- e = compatible(e); //compatible event
80
- $.each(handlerQueue, function(index, handler) {
81
- target = handler.element;
82
- var tagName = target.tagName;
83
- if (event === 'tap' && (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && tagName !== 'SELECT')) {
84
- e.preventDefault();
85
- e.detail && e.detail.gesture && e.detail.gesture.preventDefault();
86
- }
87
- $.each(handler.handlers, function(index, handler) {
88
- $.each(handler, function(index, callback) {
89
- if (callback.call(target, e) === false) {
90
- e.preventDefault();
91
- e.stopPropagation();
92
- }
93
- });
94
- })
95
- if (e.isPropagationStopped()) {
96
- return false;
97
- }
98
- });
99
- };
100
- };
101
- /**
102
- * mui delegate events
103
- * @param {type} event
104
- * @param {type} selector
105
- * @param {type} callback
106
- * @returns {undefined}
107
- */
108
- $.fn.on = function(event, selector, callback) { //仅支持简单的事件委托,主要是tap事件使用,类似mouse,focus之类暂不封装支持
109
- return this.each(function() {
110
- var element = this;
111
- mid(element);
112
- mid(callback);
113
- var isAddEventListener = false;
114
- var delegateEvents = delegates[element._mid] || (delegates[element._mid] = {});
115
- var delegateCallbackObjs = delegateEvents[event] || ((delegateEvents[event] = {}));
116
- if ($.isEmptyObject(delegateCallbackObjs)) {
117
- isAddEventListener = true;
118
- }
119
- var delegateCallbacks = delegateCallbackObjs[selector] || (delegateCallbackObjs[selector] = []);
120
- delegateCallbacks.push(callback);
121
- if (isAddEventListener) {
122
- delegateFns[mid(element)] = delegateFn(element, event, selector, callback);
123
- element.addEventListener(event, delegateFns[mid(element)]);
124
- if (event === 'tap') { //TODO 需要找个更好的解决方案
125
- element.addEventListener('click', function(e) {
126
- if (e.target) {
127
- var tagName = e.target.tagName;
128
- if (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && tagName !== 'SELECT') {
129
- e.preventDefault();
130
- }
131
- }
132
- });
133
- }
134
- }
135
- });
136
- };
137
- $.fn.off = function(event, selector, callback) {
138
- return this.each(function() {
139
- var _mid = mid(this);
140
- if (!callback) {
141
- if (delegates[_mid] && delegates[_mid][event]) {
142
- delete delegates[_mid][event][selector];
143
- }
144
- } else {
145
- var delegateCallbacks = delegates[_mid] && delegates[_mid][event] && delegates[_mid][event][selector];
146
- $.each(delegateCallbacks, function(index, delegateCallback) {
147
- if (mid(delegateCallback) === mid(callback)) {
148
- delegateCallbacks.splice(index, 1);
149
- return false;
150
- }
151
- });
152
- }
153
- //如果off掉了所有当前element的指定的event事件,则remove掉当前element的delegate回调
154
- if (delegates[_mid] && $.isEmptyObject(delegates[_mid][event])) {
155
- this.removeEventListener(event, delegateFns[_mid]);
156
- delete delegateFns[_mid];
157
- }
158
- })
159
- };
160
- })(mui);
@@ -1,22 +0,0 @@
1
- /**
2
- * mui fixed requestAnimationFrame
3
- * @param {type} window
4
- * @returns {undefined}
5
- */
6
- (function(window) {
7
- if (!window.requestAnimationFrame) {
8
- var lastTime = 0;
9
- window.requestAnimationFrame = window.webkitRequestAnimationFrame || function(callback, element) {
10
- var currTime = new Date().getTime();
11
- var timeToCall = Math.max(0, 16.7 - (currTime - lastTime));
12
- var id = window.setTimeout(function() {
13
- callback(currTime + timeToCall);
14
- }, timeToCall);
15
- lastTime = currTime + timeToCall;
16
- return id;
17
- };
18
- window.cancelAnimationFrame = window.webkitCancelAnimationFrame || window.webkitCancelRequestAnimationFrame || function(id) {
19
- clearTimeout(id);
20
- };
21
- };
22
- }(window));