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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
| define([
| "dojo",
| "dojo/_base/declare",
| "dijit/_WidgetBase",
| "dojo/dom-construct",
| "dojo/dom-attr",
| "dojo/dom-geometry",
| "dojo/window",
| "dojo/dom-style",
| "dojo/query",
| "dojo/_base/lang",
| "dojo/_base/fx",
| "dojo/on",
| "dojo/fx",
| ], function(
| dojo,
| declare,
| _WidgetBase,
| domConstruct,
| domAttr,
| domGeometry,
| win,
| domStyle,
| query,
| lang,
| fx,
| on,
| dojofx
| ) {
| var RL = declare([_WidgetBase], {
|
| /**
| * 背景
| */
| _divbg: null,
| _divContent: null,
| _span: null,
| _refNode: null,
| /**
| * 是否已经在显示
| */
| _isShow: false,
| _effectHandler: null,
| constructor: function(params, srcNodeRef, refNode) {
| var csspath = require.toUrl("controls/loader/Loader.css");
| dojo.create("link", {
| href: csspath,
| type: 'text/css',
| rel: 'stylesheet'
| },
| document.getElementsByTagName('head')[0]);
| if (refNode) {
| this._refNode = refNode;
| } else {
| this._refNode = query("body")[0];
| }
| },
| postCreate: function() {
| this._divbg = domConstruct.create("div", {
| "class": "loader-background"
| });
| this._divContent = domConstruct.create("div", {
| "class": "loader-content"
| });
| this._span = domConstruct.create("span", {
| "class": "loader-text",
| "innerHTML": "正在加载,请稍等......"
| });
| },
| show: function(loadtext,opts) {
| if (loadtext !== undefined) {
| this._span.innerHTML = loadtext;
| } else {
| this._span.innerHTML = "正在加载,请稍等......";
| }
| if (this._isShow) {
| if (this._effectHandler) {
| this._effectHandler.stop();
| this._effectHandler = null;
| }
| return;
| }
| var left;
| var top;
|
| var vs = win.getBox();
| // left = (vs.w/2)-(domStyle.get(this._divContent,"width")/2);
| // top = (vs.h/2)-(domStyle.get(this._divContent,"height")/2);
| if (opts) {
| //var pos=,true);
| domStyle.set(this._refNode, "width", opts.w + "px");
| domStyle.set(this._refNode, "height", opts.h + "px");
| left = opts.x- (206 / 2);
| top = opts.y- (61 / 2);
| } else{
| left = (vs.w / 2) - (206 / 2);
| top = (vs.h / 2) - (61 / 2);
| }
|
| domStyle.set(this._divContent, "top", top.toString() + "px");
| domStyle.set(this._divContent, "left", left.toString() + "px");
| this._isShow = true;
| var refNode = this._refNode;
| domConstruct.place(this._divbg, refNode);
| domStyle.set(this._divbg, "opacity", "0.3");
| domConstruct.place(this._divContent, refNode);
| domStyle.set(this._divContent, "opacity", "0");
| domConstruct.place(this._span, this._divContent);
| fx.animateProperty({
| node: this._divbg,
| properties: {
| opacity: {
| start: 0,
| end: 0.3
| }
| }
| }).play();
| fx.fadeIn({
| node: this._divContent
| }).play();
| //fx.fadeOut({ node: this._span }).play();
| },
| hide: function() {
| if (this._isShow == false) {
| return;
| }
| //refNode = query("body")[0];
| var fade1 = fx.animateProperty({
| node: this._divbg,
| properties: {
| opacity: {
| start: 0.3,
| end: 0
| }
| }
| });
| var fade2 = fx.animateProperty({
| node: this._divContent,
| properties: {
| opacity: {
| start: 1,
| end: 0
| }
| }
| });
| var combine = dojofx.combine([fade1, fade2]);
|
| on(fade2, "End", lang.hitch(this, function() {
| domConstruct.destroy(this._divbg);
| domConstruct.destroy(this._divContent);
| this._isShow = false;
| this._effectHandler = null;
| }));
| this._effectHandler = combine.play();
| }
| });
| return RL;
| });
|
|