mui_app_rails 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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));