| New file |
| | |
| | | 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; |
| | | }); |