⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 container_core-debug.js

📁 这是YUI的源码及相关示例。里面有很多很炫的Javascript效果。
💻 JS
📖 第 1 页 / 共 5 页
字号:
        * children of the fragment will be appended to the header.        */        appendToHeader: function (element) {            var oHeader = this.header || (this.header = createHeader());            oHeader.appendChild(element);            this.changeHeaderEvent.fire(element);            this.changeContentEvent.fire();        },        /**        * Sets the Module's body content to the HTML specified.         *         * If no body is present, one will be automatically created.         *         * An empty string can be passed to the method to clear the contents of the body.        * @method setBody        * @param {String} bodyContent The HTML used to set the body.         * As a convenience, non HTMLElement objects can also be passed into         * the method, and will be treated as strings, with the body innerHTML        * set to their default toString implementations.        * <em>OR</em>        * @param {HTMLElement} bodyContent The HTMLElement to add as the first and only        * child of the body element.        * <em>OR</em>        * @param {DocumentFragment} bodyContent The document fragment         * containing elements which are to be added to the body        */        setBody: function (bodyContent) {            var oBody = this.body || (this.body = createBody());            if (bodyContent.nodeName) {                oBody.innerHTML = "";                oBody.appendChild(bodyContent);            } else {                oBody.innerHTML = bodyContent;            }            this.changeBodyEvent.fire(bodyContent);            this.changeContentEvent.fire();        },        /**        * Appends the passed element to the body. If no body is present, one         * will be automatically created.        * @method appendToBody        * @param {HTMLElement | DocumentFragment} element The element to         * append to the body. In the case of a document fragment, the        * children of the fragment will be appended to the body.        *         */        appendToBody: function (element) {            var oBody = this.body || (this.body = createBody());                    oBody.appendChild(element);            this.changeBodyEvent.fire(element);            this.changeContentEvent.fire();        },                /**        * Sets the Module's footer content to the HTML specified, or appends         * the passed element to the footer. If no footer is present, one will         * be automatically created. An empty string can be passed to the method        * to clear the contents of the footer.        * @method setFooter        * @param {String} footerContent The HTML used to set the footer         * As a convenience, non HTMLElement objects can also be passed into         * the method, and will be treated as strings, with the footer innerHTML        * set to their default toString implementations.        * <em>OR</em>        * @param {HTMLElement} footerContent The HTMLElement to append to         * the footer        * <em>OR</em>        * @param {DocumentFragment} footerContent The document fragment containing         * elements which are to be added to the footer        */        setFooter: function (footerContent) {            var oFooter = this.footer || (this.footer = createFooter());            if (footerContent.nodeName) {                oFooter.innerHTML = "";                oFooter.appendChild(footerContent);            } else {                oFooter.innerHTML = footerContent;            }            this.changeFooterEvent.fire(footerContent);            this.changeContentEvent.fire();        },        /**        * Appends the passed element to the footer. If no footer is present,         * one will be automatically created.        * @method appendToFooter        * @param {HTMLElement | DocumentFragment} element The element to         * append to the footer. In the case of a document fragment, the        * children of the fragment will be appended to the footer        */        appendToFooter: function (element) {            var oFooter = this.footer || (this.footer = createFooter());            oFooter.appendChild(element);            this.changeFooterEvent.fire(element);            this.changeContentEvent.fire();        },        /**        * Renders the Module by inserting the elements that are not already         * in the main Module into their correct places. Optionally appends         * the Module to the specified node prior to the render's execution.         * <p>        * For Modules without existing markup, the appendToNode argument         * is REQUIRED. If this argument is ommitted and the current element is         * not present in the document, the function will return false,         * indicating that the render was a failure.        * </p>        * <p>        * NOTE: As of 2.3.1, if the appendToNode is the document's body element        * then the module is rendered as the first child of the body element,         * and not appended to it, to avoid Operation Aborted errors in IE when         * rendering the module before window's load event is fired. You can         * use the appendtodocumentbody configuration property to change this         * to append to document.body if required.        * </p>        * @method render        * @param {String} appendToNode The element id to which the Module         * should be appended to prior to rendering <em>OR</em>        * @param {HTMLElement} appendToNode The element to which the Module         * should be appended to prior to rendering        * @param {HTMLElement} moduleElement OPTIONAL. The element that         * represents the actual Standard Module container.        * @return {Boolean} Success or failure of the render        */        render: function (appendToNode, moduleElement) {            var me = this,                firstChild;            function appendTo(parentNode) {                if (typeof parentNode == "string") {                    parentNode = document.getElementById(parentNode);                }                if (parentNode) {                    me._addToParent(parentNode, me.element);                    me.appendEvent.fire();                }            }            this.beforeRenderEvent.fire();            if (! moduleElement) {                moduleElement = this.element;            }            if (appendToNode) {                appendTo(appendToNode);            } else {                 // No node was passed in. If the element is not already in the Dom, this fails                if (! Dom.inDocument(this.element)) {                    YAHOO.log("Render failed. Must specify appendTo node if " + " Module isn't already in the DOM.", "error");                    return false;                }            }            // Need to get everything into the DOM if it isn't already            if (this.header && ! Dom.inDocument(this.header)) {                // There is a header, but it's not in the DOM yet. Need to add it.                firstChild = moduleElement.firstChild;                if (firstChild) {                    moduleElement.insertBefore(this.header, firstChild);                } else {                    moduleElement.appendChild(this.header);                }            }            if (this.body && ! Dom.inDocument(this.body)) {                // There is a body, but it's not in the DOM yet. Need to add it.		                if (this.footer && Dom.isAncestor(this.moduleElement, this.footer)) {                    moduleElement.insertBefore(this.body, this.footer);                } else {                    moduleElement.appendChild(this.body);                }            }            if (this.footer && ! Dom.inDocument(this.footer)) {                // There is a footer, but it's not in the DOM yet. Need to add it.                moduleElement.appendChild(this.footer);            }            this.renderEvent.fire();            return true;        },        /**        * Removes the Module element from the DOM and sets all child elements         * to null.        * @method destroy        */        destroy: function () {            var parent,                e;            if (this.element) {                Event.purgeElement(this.element, true);                parent = this.element.parentNode;            }            if (parent) {                parent.removeChild(this.element);            }                    this.element = null;            this.header = null;            this.body = null;            this.footer = null;            Module.textResizeEvent.unsubscribe(this.onDomResize, this);            this.cfg.destroy();            this.cfg = null;            this.destroyEvent.fire();        },        /**        * Shows the Module element by setting the visible configuration         * property to true. Also fires two events: beforeShowEvent prior to         * the visibility change, and showEvent after.        * @method show        */        show: function () {            this.cfg.setProperty("visible", true);        },        /**        * Hides the Module element by setting the visible configuration         * property to false. Also fires two events: beforeHideEvent prior to         * the visibility change, and hideEvent after.        * @method hide        */        hide: function () {            this.cfg.setProperty("visible", false);        },                // BUILT-IN EVENT HANDLERS FOR MODULE //        /**        * Default event handler for changing the visibility property of a         * Module. By default, this is achieved by switching the "display" style         * between "block" and "none".        * This method is responsible for firing showEvent and hideEvent.        * @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.        * @method configVisible        */        configVisible: function (type, args, obj) {            var visible = args[0];            if (visible) {                this.beforeShowEvent.fire();                Dom.setStyle(this.element, "display", "block");                this.showEvent.fire();            } else {                this.beforeHideEvent.fire();                Dom.setStyle(this.element, "display", "none");                this.hideEvent.fire();            }        },                /**        * Default event handler for the "monitorresize" configuration property        * @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.        * @method configMonitorResize        */        configMonitorResize: function (type, args, obj) {            var monitor = args[0];            if (monitor) {                this.initResizeMonitor();            } else {                Module.textResizeEvent.unsubscribe(this.onDomResize, this, true);                this.resizeMonitor = null;            }        },        /**         * This method is a protected helper, used when constructing the DOM structure for the module          * to account for situations which may cause Operation Aborted errors in IE. It should not          * be used for general DOM construction.         * <p>         * If the parentNode is not document.body, the element is appended as the last element.         * </p>         * <p>         * If the parentNode is document.body the element is added as the first child to help         * prevent Operation Aborted errors in IE.         * </p>         *         * @param {parentNode} The HTML element to which the element will be added         * @param {element} The HTML element to be added to parentNode's children         * @method _addToParent         * @protected         */        _addToParent: function(parentNode, element) {            if (!this.cfg.getProperty("appendtodocumentbody") && parentNode === document.body && parentNode.firstChild) {                parentNode.insertBefore(element, parentNode.firstChild);            } else {                parentNode.appendChild(element);            }        },        /**        * Returns a String representation of the Object.        * @method toString        * @return {String} The string representation of the Module        */        toString: function () {            return "Module " + this.id;        }    };    YAHOO.lang.augmentProto(Module, YAHOO.util.EventProvider);}());(function () {    /**    * Overlay is a Module that is absolutely positioned above the page flow. It     * has convenience methods for positioning and sizing, as well as options for     * controlling zIndex and constraining the Overlay's position to the current     * visible viewport. Overlay also contains a dynamicly generated IFRAME which     * is placed beneath it for Internet Explorer 6 and 5.x so that it will be     * properly rendered above SELECT elements.    * @namespace YAHOO.widget    * @class Overlay    * @extends YAHOO.widget.Module    * @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.    * @constructor    */    YAHOO.widget.Overlay = function (el, userConfig) {        YAHOO.widget.Overlay.superclass.constructor.call(this, el, userConfig);    };    var Lang = YAHOO.lang,        CustomEvent = YAHOO.util.CustomEvent,        Module = YAHOO.widget.Module,        Event = YAHOO.util.Event,        Dom = YAHOO.util.Dom,        Config = YAHOO.util.Config,        UA = YAHOO.env.ua,        Overlay = YAHOO.widget.Overlay,        _SUBSCRIBE = "subscribe",        _UNSUBSCRIBE = "unsubscribe",        m_oIFrameTemplate,        /**        * Constant representing the name of the Overlay's events       

⌨️ 快捷键说明

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