loading.js
2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/**
* Loading mask
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/29
*/
let $ = require('yoho-jquery'),
tip = require('./tip');
let $page = $('.yoho-page');
let $loading,
hasInit = false,
timeWatch,
timeOut = 5000;
/** modify by liangzhifeng at 2015.11.2 */
// 初始化
function init($container, options) {
let className = options && options.className || '';
let html = '<div class="loading-mask ' + className + ' hide">' +
'<div class="loading">' +
'<div></div><div></div><div></div>' +
'</div>' +
'</div>';
hasInit = true;
if (!$container) {
$container = $page;
}
$container.append(html);
$loading = $container.children('.loading-mask');
timeOut = options && options.timeout || timeOut;
// 产品优化loading时可以滑动
// $('body').on('touchstart touchmove touchend', '.loading-mask', function() {
// return false;
// });
}
// 显示loading
function showLoadingMask() {
// if (!hasInit) {
// init();
// hasInit = true;
// }
// $loading.removeClass('hide');
}
// 隐藏loading
function hideLoadingMask() {
// if (!hasInit) {
// init();
// hasInit = true;
// }
// $loading.addClass('hide');
}
// 隐藏loading
function hideLoading(timeout) {
if (timeWatch) {
clearTimeout(timeWatch);
}
if (timeout === true) {
tip.show('操作失败,请重试');
}
if (!hasInit) {
init();
hasInit = true;
}
$loading.addClass('hide');
}
// 显示loading
function showLoading() {
if (timeWatch) {
clearTimeout(timeWatch);
}
timeWatch = setTimeout(() => {
hideLoading(true);
}, timeOut);
if (!hasInit) {
init();
hasInit = true;
}
$loading.removeClass('hide');
}
exports.init = init;
exports.showLoadingMask = showLoadingMask;
exports.hideLoadingMask = hideLoadingMask;
exports.show = showLoadingMask;
exports.hide = hideLoadingMask;
exports.showLoading = showLoading;
exports.hideLoading = hideLoading;