亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? element.js

?? ajax最新框架extjs
?? JS
?? 第 1 頁 / 共 5 頁
字號:
/*
 * Ext JS Library 2.2.1
 * Copyright(c) 2006-2009, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */

/**
 * @class Ext.Element
 * Represents an Element in the DOM.<br><br>
 * Usage:<br>
<pre><code>
// by id
var el = Ext.get("my-div");

// by DOM element reference
var el = Ext.get(myDivElement);
</code></pre>
 * <b>Animations</b><br />
 * Many of the functions for manipulating an element have an optional "animate" parameter. The animate parameter
 * should either be a boolean (true) or an object literal with animation options. Note that the supported Element animation
 * options are a subset of the {@link Ext.Fx} animation options specific to Fx effects.  The Element animation options are:
<pre>
Option    Default   Description
--------- --------  ---------------------------------------------
duration  .35       The duration of the animation in seconds
easing    easeOut   The easing method
callback  none      A function to execute when the anim completes
scope     this      The scope (this) of the callback function
</pre>
* Also, the Anim object being used for the animation will be set on your options object as "anim", which allows you to stop or
* manipulate the animation. Here's an example:
<pre><code>
var el = Ext.get("my-div");

// no animation
el.setWidth(100);

// default animation
el.setWidth(100, true);

// animation with some options set
el.setWidth(100, {
    duration: 1,
    callback: this.foo,
    scope: this
});

// using the "anim" property to get the Anim object
var opt = {
    duration: 1,
    callback: this.foo,
    scope: this
};
el.setWidth(100, opt);
...
if(opt.anim.isAnimated()){
    opt.anim.stop();
}
</code></pre>
* <b> Composite (Collections of) Elements</b><br />
 * For working with collections of Elements, see {@link Ext.CompositeElement}
 * @constructor Create a new Element directly.
 * @param {String/HTMLElement} element
 * @param {Boolean} forceNew (optional) By default the constructor checks to see if there is already an instance of this element in the cache and if there is it returns the same instance. This will skip that check (useful for extending this class).
 */
(function(){
var D = Ext.lib.Dom;
var E = Ext.lib.Event;
var A = Ext.lib.Anim;

// local style camelizing for speed
var propCache = {};
var camelRe = /(-[a-z])/gi;
var camelFn = function(m, a){ return a.charAt(1).toUpperCase(); };
var view = document.defaultView;

Ext.Element = function(element, forceNew){
    var dom = typeof element == "string" ?
            document.getElementById(element) : element;
    if(!dom){ // invalid id/element
        return null;
    }
    var id = dom.id;
    if(forceNew !== true && id && Ext.Element.cache[id]){ // element object already exists
        return Ext.Element.cache[id];
    }

    /**
     * The DOM element
     * @type HTMLElement
     */
    this.dom = dom;

    /**
     * The DOM element ID
     * @type String
     */
    this.id = id || Ext.id(dom);
};

var El = Ext.Element;

El.prototype = {
    /**
     * The element's default display mode  (defaults to "")
     * @type String
     */
    originalDisplay : "",

    visibilityMode : 1,
    /**
     * The default unit to append to CSS values where a unit isn't provided (defaults to px).
     * @type String
     */
    defaultUnit : "px",
    /**
     * Sets the element's visibility mode. When setVisible() is called it
     * will use this to determine whether to set the visibility or the display property.
     * @param visMode Element.VISIBILITY or Element.DISPLAY
     * @return {Ext.Element} this
     */
    setVisibilityMode : function(visMode){
        this.visibilityMode = visMode;
        return this;
    },
    /**
     * Convenience method for setVisibilityMode(Element.DISPLAY)
     * @param {String} display (optional) What to set display to when visible
     * @return {Ext.Element} this
     */
    enableDisplayMode : function(display){
        this.setVisibilityMode(El.DISPLAY);
        if(typeof display != "undefined") this.originalDisplay = display;
        return this;
    },

    /**
     * Looks at this node and then at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:first-child)
     * @param {String} selector The simple selector to test
     * @param {Number/Mixed} maxDepth (optional) The max depth to
            search as a number or element (defaults to 10 || document.body)
     * @param {Boolean} returnEl (optional) True to return a Ext.Element object instead of DOM node
     * @return {HTMLElement} The matching DOM node (or null if no match was found)
     */
    findParent : function(simpleSelector, maxDepth, returnEl){
        var p = this.dom, b = document.body, depth = 0, dq = Ext.DomQuery, stopEl;
        maxDepth = maxDepth || 50;
        if(typeof maxDepth != "number"){
            stopEl = Ext.getDom(maxDepth);
            maxDepth = 10;
        }
        while(p && p.nodeType == 1 && depth < maxDepth && p != b && p != stopEl){
            if(dq.is(p, simpleSelector)){
                return returnEl ? Ext.get(p) : p;
            }
            depth++;
            p = p.parentNode;
        }
        return null;
    },


    /**
     * Looks at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:first-child)
     * @param {String} selector The simple selector to test
     * @param {Number/Mixed} maxDepth (optional) The max depth to
            search as a number or element (defaults to 10 || document.body)
     * @param {Boolean} returnEl (optional) True to return a Ext.Element object instead of DOM node
     * @return {HTMLElement} The matching DOM node (or null if no match was found)
     */
    findParentNode : function(simpleSelector, maxDepth, returnEl){
        var p = Ext.fly(this.dom.parentNode, '_internal');
        return p ? p.findParent(simpleSelector, maxDepth, returnEl) : null;
    },

    /**
     * Walks up the dom looking for a parent node that matches the passed simple selector (e.g. div.some-class or span:first-child).
     * This is a shortcut for findParentNode() that always returns an Ext.Element.
     * @param {String} selector The simple selector to test
     * @param {Number/Mixed} maxDepth (optional) The max depth to
            search as a number or element (defaults to 10 || document.body)
     * @return {Ext.Element} The matching DOM node (or null if no match was found)
     */
    up : function(simpleSelector, maxDepth){
        return this.findParentNode(simpleSelector, maxDepth, true);
    },



    /**
     * Returns true if this element matches the passed simple selector (e.g. div.some-class or span:first-child)
     * @param {String} selector The simple selector to test
     * @return {Boolean} True if this element matches the selector, else false
     */
    is : function(simpleSelector){
        return Ext.DomQuery.is(this.dom, simpleSelector);
    },

    /**
     * Perform animation on this element.
     * @param {Object} args The animation control args
     * @param {Float} duration (optional) How long the animation lasts in seconds (defaults to .35)
     * @param {Function} onComplete (optional) Function to call when animation completes
     * @param {String} easing (optional) Easing method to use (defaults to 'easeOut')
     * @param {String} animType (optional) 'run' is the default. Can also be 'color', 'motion', or 'scroll'
     * @return {Ext.Element} this
     */
    animate : function(args, duration, onComplete, easing, animType){
        this.anim(args, {duration: duration, callback: onComplete, easing: easing}, animType);
        return this;
    },

    /*
     * @private Internal animation call
     */
    anim : function(args, opt, animType, defaultDur, defaultEase, cb){
        animType = animType || 'run';
        opt = opt || {};
        var anim = Ext.lib.Anim[animType](
            this.dom, args,
            (opt.duration || defaultDur) || .35,
            (opt.easing || defaultEase) || 'easeOut',
            function(){
                Ext.callback(cb, this);
                Ext.callback(opt.callback, opt.scope || this, [this, opt]);
            },
            this
        );
        opt.anim = anim;
        return anim;
    },

    // private legacy anim prep
    preanim : function(a, i){
        return !a[i] ? false : (typeof a[i] == "object" ? a[i]: {duration: a[i+1], callback: a[i+2], easing: a[i+3]});
    },

    /**
     * Removes worthless text nodes
     * @param {Boolean} forceReclean (optional) By default the element
     * keeps track if it has been cleaned already so
     * you can call this over and over. However, if you update the element and
     * need to force a reclean, you can pass true.
     */
    clean : function(forceReclean){
        if(this.isCleaned && forceReclean !== true){
            return this;
        }
        var ns = /\S/;
        var d = this.dom, n = d.firstChild, ni = -1;
 	    while(n){
 	        var nx = n.nextSibling;
 	        if(n.nodeType == 3 && !ns.test(n.nodeValue)){
 	            d.removeChild(n);
 	        }else{
 	            n.nodeIndex = ++ni;
 	        }
 	        n = nx;
 	    }
 	    this.isCleaned = true;
 	    return this;
 	},

    /**
     * Scrolls this element into view within the passed container.
     * @param {Mixed} container (optional) The container element to scroll (defaults to document.body).  Should be a
     * string (id), dom node, or Ext.Element.
     * @param {Boolean} hscroll (optional) False to disable horizontal scroll (defaults to true)
     * @return {Ext.Element} this
     */
    scrollIntoView : function(container, hscroll){
        var c = Ext.getDom(container) || Ext.getBody().dom;
        var el = this.dom;

        var o = this.getOffsetsTo(c),
            l = o[0] + c.scrollLeft,
            t = o[1] + c.scrollTop,
            b = t+el.offsetHeight,
            r = l+el.offsetWidth;

        var ch = c.clientHeight;
        var ct = parseInt(c.scrollTop, 10);
        var cl = parseInt(c.scrollLeft, 10);
        var cb = ct + ch;
        var cr = cl + c.clientWidth;

        if(el.offsetHeight > ch || t < ct){
        	c.scrollTop = t;
        }else if(b > cb){
            c.scrollTop = b-ch;
        }
        c.scrollTop = c.scrollTop; // corrects IE, other browsers will ignore

        if(hscroll !== false){
			if(el.offsetWidth > c.clientWidth || l < cl){
                c.scrollLeft = l;
            }else if(r > cr){
                c.scrollLeft = r-c.clientWidth;
            }
            c.scrollLeft = c.scrollLeft;
        }
        return this;
    },

    // private
    scrollChildIntoView : function(child, hscroll){
        Ext.fly(child, '_scrollChildIntoView').scrollIntoView(this, hscroll);
    },

    /**
     * Measures the element's content height and updates height to match. Note: this function uses setTimeout so
     * the new height may not be available immediately.
     * @param {Boolean} animate (optional) Animate the transition (defaults to false)
     * @param {Float} duration (optional) Length of the animation in seconds (defaults to .35)
     * @param {Function} onComplete (optional) Function to call when animation completes
     * @param {String} easing (optional) Easing method to use (defaults to easeOut)
     * @return {Ext.Element} this
     */
    autoHeight : function(animate, duration, onComplete, easing){
        var oldHeight = this.getHeight();
        this.clip();
        this.setHeight(1); // force clipping
        setTimeout(function(){
            var height = parseInt(this.dom.scrollHeight, 10); // parseInt for Safari
            if(!animate){
                this.setHeight(height);
                this.unclip();
                if(typeof onComplete == "function"){
                    onComplete();
                }
            }else{
                this.setHeight(oldHeight); // restore original height
                this.setHeight(height, animate, duration, function(){
                    this.unclip();
                    if(typeof onComplete == "function") onComplete();
                }.createDelegate(this), easing);
            }
        }.createDelegate(this), 0);
        return this;
    },

    /**
     * Returns true if this element is an ancestor of the passed element
     * @param {HTMLElement/String} el The element to check

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩vs国产vs欧美| 在线影视一区二区三区| av中文字幕在线不卡| 51久久夜色精品国产麻豆| 国产欧美一区二区精品性色| 视频一区免费在线观看| 99国产精品国产精品久久| 日韩欧美国产综合| 亚洲一区二区三区美女| 国产91精品久久久久久久网曝门| 欧美日本一区二区三区四区| 亚洲三级电影网站| 国产一区二区不卡老阿姨| 欧美日韩成人一区二区| 亚洲欧美另类图片小说| 懂色av噜噜一区二区三区av| 精品免费视频.| 秋霞av亚洲一区二区三| 欧美系列亚洲系列| 亚洲美女淫视频| 99精品在线观看视频| 亚洲国产一区二区在线播放| 精品一区二区三区免费毛片爱 | 麻豆精品久久精品色综合| 色综合色狠狠综合色| 久久久午夜电影| 久久国内精品视频| 日韩欧美电影一区| 捆绑紧缚一区二区三区视频| 欧美日韩精品一区二区天天拍小说 | 国产91露脸合集magnet| 久久久久久电影| 激情综合网av| 精品国产sm最大网站免费看| 日韩av一二三| 精品免费日韩av| 韩国视频一区二区| 久久亚洲精品国产精品紫薇| 国模娜娜一区二区三区| 久久久久国产精品人| 高清日韩电视剧大全免费| 久久久久久黄色| 99天天综合性| 亚洲一级不卡视频| 欧美一区二区三区在线| 黄色日韩网站视频| 亚洲成人tv网| 欧美卡1卡2卡| 精品一区二区三区视频| 国产丝袜欧美中文另类| 99精品视频一区二区| 一区二区三区在线播放| 欧美日韩国产小视频| 久久精品国产**网站演员| 久久九九久精品国产免费直播| 国产乱码精品一区二区三区忘忧草 | 91黄色在线观看| 午夜激情综合网| 精品国产第一区二区三区观看体验 | 日韩主播视频在线| 国产午夜精品久久久久久免费视 | 日本一区二区三区视频视频| a4yy欧美一区二区三区| 亚洲观看高清完整版在线观看| 制服丝袜中文字幕亚洲| 国产91对白在线观看九色| 亚洲欧美一区二区三区国产精品| 欧美性色黄大片| 国产精品一区二区久久精品爱涩| 中文字幕一区二区三区在线不卡| 欧美亚洲国产一区二区三区va| 秋霞电影网一区二区| 开心九九激情九九欧美日韩精美视频电影 | 日韩精品福利网| 中文字幕精品在线不卡| 在线观看日产精品| 国精产品一区一区三区mba桃花| 亚洲色图色小说| 欧美大白屁股肥臀xxxxxx| 99re在线视频这里只有精品| 日韩成人dvd| 综合电影一区二区三区 | 欧美性感一区二区三区| 国产精品综合二区| 亚洲成人一二三| 综合激情网...| 久久久亚洲精品石原莉奈| 欧美三级欧美一级| 成人黄色在线网站| 精品无人区卡一卡二卡三乱码免费卡| 综合中文字幕亚洲| 国产三级精品在线| 日韩一区二区在线播放| 欧美亚洲丝袜传媒另类| 99免费精品视频| 国产福利一区二区三区| 日韩国产欧美在线视频| 亚洲欧洲精品天堂一级| 久久久久久**毛片大全| 欧美一级片免费看| 欧美三级日韩三级| 91久久人澡人人添人人爽欧美| 丁香激情综合五月| 国产一区二区看久久| 免费成人性网站| 肉色丝袜一区二区| 亚洲综合成人网| 一区二区三区高清不卡| 《视频一区视频二区| 久久天天做天天爱综合色| 欧美一级午夜免费电影| 欧美一区二区成人| 6080yy午夜一二三区久久| 欧美揉bbbbb揉bbbbb| 欧美影院精品一区| 欧美三级中文字| 91.xcao| 欧美一级一区二区| 欧美不卡一区二区三区| 精品国内二区三区| 久久综合狠狠综合| 久久人人97超碰com| 国产色一区二区| 国产精品成人午夜| 一区二区在线观看av| 亚洲国产综合人成综合网站| 三级一区在线视频先锋 | 国产精品综合av一区二区国产馆| 久久精品国产秦先生| 国产在线视频不卡二| 大尺度一区二区| 91视频在线观看免费| 欧美日韩一区三区| 日韩一二在线观看| 国产亚洲一二三区| 国产精品国产三级国产三级人妇 | 日韩中文字幕亚洲一区二区va在线| 亚洲成人免费在线| 麻豆成人综合网| 懂色中文一区二区在线播放| 91网址在线看| 欧美日韩电影在线| 久久久九九九九| 亚洲视频你懂的| 青娱乐精品视频在线| 国产mv日韩mv欧美| 欧美日韩中文国产| 久久免费美女视频| 亚洲综合一区二区| 激情小说欧美图片| 99精品久久久久久| 欧美一区二区福利在线| 日本一区二区三区久久久久久久久不 | 欧美一区二区三区免费视频| 精品日韩一区二区| 一区二区三区日本| 精品在线一区二区三区| 成人动漫一区二区三区| 欧美久久久久中文字幕| 日本一区二区视频在线观看| 亚洲成人av中文| 国产成人av自拍| 欧美另类z0zxhd电影| 国产精品久久久久久久久果冻传媒 | 亚洲图片自拍偷拍| 国产一区二区三区蝌蚪| 在线视频你懂得一区二区三区| 337p亚洲精品色噜噜狠狠| 自拍视频在线观看一区二区| 国内久久婷婷综合| 777亚洲妇女| 日韩码欧中文字| 国产麻豆精品95视频| 欧美日韩成人在线| 一区二区三区小说| 国产suv精品一区二区883| 欧美一级在线免费| 五月综合激情日本mⅴ| 91在线观看美女| 国产日韩欧美不卡在线| 免费一区二区视频| 欧美日韩久久一区| 亚洲综合丁香婷婷六月香| 99视频国产精品| 国产精品乱人伦中文| 国产美女在线精品| 欧美电影精品一区二区| 亚洲 欧美综合在线网络| 91美女蜜桃在线| 亚洲三级免费电影| 99久久99精品久久久久久| 国产精品久久久久久久久图文区| 国产伦精品一区二区三区视频青涩| 欧美一区午夜视频在线观看| 午夜视频在线观看一区二区三区| 99re热这里只有精品视频| 国产午夜亚洲精品不卡| 国产suv精品一区二区三区| 国产日韩欧美亚洲| 成人精品电影在线观看|