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 + -
显示快捷键?