container-debug.js

来自「国外很不错的一个开源OA系统Group-Office」· JavaScript 代码 · 共 2,091 行 · 第 1/5 页

JS
2,091
字号
* @property YAHOO.widget.Overlay.TOP_LEFT* @static* @final* @type String*/YAHOO.widget.Overlay.TOP_LEFT = "tl";/*** Constant representing the top right corner of an element, used for configuring the context element alignment* @property YAHOO.widget.Overlay.TOP_RIGHT* @static* @final* @type String*/YAHOO.widget.Overlay.TOP_RIGHT = "tr";/*** Constant representing the top bottom left corner of an element, used for configuring the context element alignment* @property YAHOO.widget.Overlay.BOTTOM_LEFT* @static* @final* @type String*/YAHOO.widget.Overlay.BOTTOM_LEFT = "bl";/*** Constant representing the bottom right corner of an element, used for configuring the context element alignment* @property YAHOO.widget.Overlay.BOTTOM_RIGHT* @static* @final* @type String*/YAHOO.widget.Overlay.BOTTOM_RIGHT = "br";/*** Constant representing the default CSS class used for an Overlay* @property YAHOO.widget.Overlay.CSS_OVERLAY* @static* @final* @type String*/YAHOO.widget.Overlay.CSS_OVERLAY = "overlay";/*** The Overlay initialization method, which is executed for Overlay and all of its subclasses. This method is automatically called by the constructor, and  sets up all DOM references for pre-existing markup, and creates required markup if it is not already present.* @method init* @param {String}	el	The element ID representing the Overlay <em>OR</em>* @param {HTMLElement}	el	The element representing the Overlay* @param {Object}	userConfig	The configuration object literal containing the configuration that should be set for this Overlay. See configuration documentation for more details.*/YAHOO.widget.Overlay.prototype.init = function(el, userConfig) {	YAHOO.widget.Overlay.superclass.init.call(this, el/*, userConfig*/);  // Note that we don't pass the user config in here yet because we only want it executed once, at the lowest subclass level	this.beforeInitEvent.fire(YAHOO.widget.Overlay);	YAHOO.util.Dom.addClass(this.element, YAHOO.widget.Overlay.CSS_OVERLAY);	if (userConfig) {		this.cfg.applyConfig(userConfig, true);	}	if (this.platform == "mac" && this.browser == "gecko") {		if (! YAHOO.util.Config.alreadySubscribed(this.showEvent,this.showMacGeckoScrollbars,this)) {			this.showEvent.subscribe(this.showMacGeckoScrollbars,this,true);		}		if (! YAHOO.util.Config.alreadySubscribed(this.hideEvent,this.hideMacGeckoScrollbars,this)) {			this.hideEvent.subscribe(this.hideMacGeckoScrollbars,this,true);		}	}	this.initEvent.fire(YAHOO.widget.Overlay);};/*** Initializes the custom events for Overlay which are fired automatically at appropriate times by the Overlay class.* @method initEvents*/YAHOO.widget.Overlay.prototype.initEvents = function() {	YAHOO.widget.Overlay.superclass.initEvents.call(this);	/**	* CustomEvent fired before the Overlay is moved.	* @event beforeMoveEvent	* @param {Number} x	x coordinate	* @param {Number} y	y coordinate	*/	this.beforeMoveEvent = new YAHOO.util.CustomEvent("beforeMove", this);	/**	* CustomEvent fired after the Overlay is moved.	* @event moveEvent	* @param {Number} x	x coordinate	* @param {Number} y	y coordinate	*/	this.moveEvent = new YAHOO.util.CustomEvent("move", this);};/*** Initializes the class's configurable properties which can be changed using the Overlay's Config object (cfg).* @method initDefaultConfig*/YAHOO.widget.Overlay.prototype.initDefaultConfig = function() {	YAHOO.widget.Overlay.superclass.initDefaultConfig.call(this);	// Add overlay config properties //	/**	* The absolute x-coordinate position of the Overlay	* @config x	* @type Number	* @default null	*/	this.cfg.addProperty("x", { handler:this.configX, validator:this.cfg.checkNumber, suppressEvent:true, supercedes:["iframe"] } );	/**	* The absolute y-coordinate position of the Overlay	* @config y	* @type Number	* @default null	*/	this.cfg.addProperty("y", { handler:this.configY, validator:this.cfg.checkNumber, suppressEvent:true, supercedes:["iframe"] } );	/**	* An array with the absolute x and y positions of the Overlay	* @config xy	* @type Number[]	* @default null	*/	this.cfg.addProperty("xy",{ handler:this.configXY, suppressEvent:true, supercedes:["iframe"] } );	/**	* The array of context arguments for context-sensitive positioning. The format is: [id or element, element corner, context corner]. For example, setting this property to ["img1", "tl", "bl"] would align the Overlay's top left corner to the context element's bottom left corner.	* @config context	* @type Array	* @default null	*/	this.cfg.addProperty("context",	{ handler:this.configContext, suppressEvent:true, supercedes:["iframe"] } );	/**	* True if the Overlay should be anchored to the center of the viewport.	* @config fixedcenter	* @type Boolean	* @default false	*/	this.cfg.addProperty("fixedcenter", { value:false, handler:this.configFixedCenter, validator:this.cfg.checkBoolean, supercedes:["iframe","visible"] } );	/**	* CSS width of the Overlay.	* @config width	* @type String	* @default null	*/	this.cfg.addProperty("width", { handler:this.configWidth, suppressEvent:true, supercedes:["iframe"] } );	/**	* CSS height of the Overlay.	* @config height	* @type String	* @default null	*/	this.cfg.addProperty("height", { handler:this.configHeight, suppressEvent:true, supercedes:["iframe"] } );	/**	* CSS z-index of the Overlay.	* @config zIndex	* @type Number	* @default null	*/	this.cfg.addProperty("zIndex", { value:null, handler:this.configzIndex } );	/**	* True if the Overlay should be prevented from being positioned out of the viewport.	* @config constraintoviewport	* @type Boolean	* @default false	*/	this.cfg.addProperty("constraintoviewport", { value:false, handler:this.configConstrainToViewport, validator:this.cfg.checkBoolean, supercedes:["iframe","x","y","xy"] } );	/**	* True if the Overlay should have an IFRAME shim (for correcting the select z-index bug in IE6 and below).	* @config iframe	* @type Boolean	* @default true for IE6 and below, false for all others	*/	this.cfg.addProperty("iframe", { value:(this.browser == "ie" ? true : false), handler:this.configIframe, validator:this.cfg.checkBoolean, supercedes:["zIndex"] } );};/*** Moves the Overlay to the specified position. This function is identical to calling this.cfg.setProperty("xy", [x,y]);* @method moveTo* @param {Number}	x	The Overlay's new x position* @param {Number}	y	The Overlay's new y position*/YAHOO.widget.Overlay.prototype.moveTo = function(x, y) {	this.cfg.setProperty("xy",[x,y]);};/*** Adds a special CSS class to the Overlay when Mac/Gecko is in use, to work around a Gecko bug where* scrollbars cannot be hidden. See https://bugzilla.mozilla.org/show_bug.cgi?id=187435* @method hideMacGeckoScrollbars*/YAHOO.widget.Overlay.prototype.hideMacGeckoScrollbars = function() {	YAHOO.util.Dom.removeClass(this.element, "show-scrollbars");	YAHOO.util.Dom.addClass(this.element, "hide-scrollbars");};/*** Removes a special CSS class from the Overlay when Mac/Gecko is in use, to work around a Gecko bug where* scrollbars cannot be hidden. See https://bugzilla.mozilla.org/show_bug.cgi?id=187435* @method showMacGeckoScrollbars*/YAHOO.widget.Overlay.prototype.showMacGeckoScrollbars = function() {	YAHOO.util.Dom.removeClass(this.element, "hide-scrollbars");	YAHOO.util.Dom.addClass(this.element, "show-scrollbars");};// BEGIN BUILT-IN PROPERTY EVENT HANDLERS ///*** The default event handler fired when the "visible" property is changed. This method is responsible for firing showEvent and hideEvent.* @method configVisible* @param {String} type	The CustomEvent type (usually the property name)* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.*/YAHOO.widget.Overlay.prototype.configVisible = function(type, args, obj) {	var visible = args[0];	var currentVis = YAHOO.util.Dom.getStyle(this.element, "visibility");	if (currentVis == "inherit") {		var e = this.element.parentNode;		while (e.nodeType != 9 && e.nodeType != 11) {			currentVis = YAHOO.util.Dom.getStyle(e, "visibility");			if (currentVis != "inherit") { break; }			e = e.parentNode;		}		if (currentVis == "inherit") {			currentVis = "visible";		}	}	var effect = this.cfg.getProperty("effect");	var effectInstances = [];	if (effect) {		if (effect instanceof Array) {			for (var i=0;i<effect.length;i++) {				var eff = effect[i];				effectInstances[effectInstances.length] = eff.effect(this, eff.duration);			}		} else {			effectInstances[effectInstances.length] = effect.effect(this, effect.duration);		}	}	var isMacGecko = (this.platform == "mac" && this.browser == "gecko");	if (visible) { // Show		if (isMacGecko) {			this.showMacGeckoScrollbars();		}		if (effect) { // Animate in			if (visible) { // Animate in if not showing				if (currentVis != "visible" || currentVis === "") {					this.beforeShowEvent.fire();					for (var j=0;j<effectInstances.length;j++) {						var ei = effectInstances[j];						if (j === 0 && ! YAHOO.util.Config.alreadySubscribed(ei.animateInCompleteEvent,this.showEvent.fire,this.showEvent)) {							ei.animateInCompleteEvent.subscribe(this.showEvent.fire,this.showEvent,true); // Delegate showEvent until end of animateInComplete						}						ei.animateIn();					}				}			}		} else { // Show			if (currentVis != "visible" || currentVis === "") {				this.beforeShowEvent.fire();				YAHOO.util.Dom.setStyle(this.element, "visibility", "visible");				this.cfg.refireEvent("iframe");				this.showEvent.fire();			}		}	} else { // Hide		if (isMacGecko) {			this.hideMacGeckoScrollbars();		}		if (effect) { // Animate out if showing			if (currentVis == "visible") {				this.beforeHideEvent.fire();				for (var k=0;k<effectInstances.length;k++) {					var h = effectInstances[k];					if (k === 0 && ! YAHOO.util.Config.alreadySubscribed(h.animateOutCompleteEvent,this.hideEvent.fire,this.hideEvent)) {						h.animateOutCompleteEvent.subscribe(this.hideEvent.fire,this.hideEvent,true); // Delegate hideEvent until end of animateOutComplete					}					h.animateOut();				}			} else if (currentVis === "") {				YAHOO.util.Dom.setStyle(this.element, "visibility", "hidden");			}		} else { // Simple hide			if (currentVis == "visible" || currentVis === "") {				this.beforeHideEvent.fire();				YAHOO.util.Dom.setStyle(this.element, "visibility", "hidden");				this.cfg.refireEvent("iframe");				this.hideEvent.fire();			}		}	}};/*** Center event handler used for centering on scroll/resize, but only if the Overlay is visible* @method doCenterOnDOMEvent*/YAHOO.widget.Overlay.prototype.doCenterOnDOMEvent = function() {	if (this.cfg.getProperty("visible")) {		this.center();	}};/*** The default event handler fired when the "fixedcenter" property is changed.* @method configFixedCenter* @param {String} type	The CustomEvent type (usually the property name)* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.*/YAHOO.widget.Overlay.prototype.configFixedCenter = function(type, args, obj) {	var val = args[0];	if (val) {		this.center();		if (! YAHOO.util.Config.alreadySubscribed(this.beforeShowEvent, this.center, this)) {			this.beforeShowEvent.subscribe(this.center, this, true);		}		if (! YAHOO.util.Config.alreadySubscribed(YAHOO.widget.Overlay.windowResizeEvent, this.doCenterOnDOMEvent, this)) {			YAHOO.widget.Overlay.windowResizeEvent.subscribe(this.doCenterOnDOMEvent, this, true);		}		if (! YAHOO.util.Config.alreadySubscribed(YAHOO.widget.Overlay.windowScrollEvent, this.doCenterOnDOMEvent, this)) {			YAHOO.widget.Overlay.windowScrollEvent.subscribe( this.doCenterOnDOMEvent, this, true);		}	} else {		YAHOO.widget.Overlay.windowResizeEvent.unsubscribe(this.doCenterOnDOMEvent, this);		YAHOO.widget.Overlay.windowScrollEvent.unsubscribe(this.doCenterOnDOMEvent, this);	}};/*** The default event handler fired when the "height" property is changed.* @method configHeight* @param {String} type	The CustomEvent type (usually the property name)* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.*/YAHOO.widget.Overlay.prototype.configHeight = function(type, args, obj) {	var height = args[0];	var el = this.element;	YAHOO.util.Dom.setStyle(el, "height", height);	this.cfg.refireEvent("iframe");};/*** The default event handler fired when the "width" property is changed.* @method configWidth* @param {String} type	The CustomEvent type (usually the property name)* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.*/YAHOO.widget.Overlay.prototype.configWidth = function(type, args, obj) {	var width = args[0];	var el = this.element;	YAHOO.util.Dom.setStyle(el, "width", width);	this.cfg.refireEvent("iframe");};/*** The default event handler fired when the "zIndex" property is changed.* @method configzIndex* @param {String} type	The CustomEvent type (usually the property name)* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.*/YAHOO.widget.Overlay.prototype.configzIndex = function(type, args, obj) {	var zIndex = args[0];	var el = this.element;	if (! zIndex) {		zIndex = YAHOO.util.Dom.getStyle(el, "zIndex");		if (! zIndex || isNaN(zIndex)) {			zIndex = 0;		}	}	if (this.iframe) {		if (zIndex <= 0) {			zIndex = 1;		}		YAHOO.util.Dom.setStyle(this.iframe, "zIndex", (zIndex-1));	}	YAHOO.util.Dom.setStyle(el, "zIndex", zIndex);	this.cfg.setProperty("zIndex", zIndex, true);};/*** The default event handler fired when the "xy" property is changed.* @method configXY* @param {String} type	The CustomEvent type (usually the property name)* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?