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

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

?? element.js

?? 一個struts和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一区二区三区免费野_久草精品视频
欧美日本免费一区二区三区| 成人午夜私人影院| 日韩一区二区三免费高清| 亚洲成人1区2区| 欧美日韩精品一二三区| 美女mm1313爽爽久久久蜜臀| 久久久久国产精品免费免费搜索 | 亚洲国产成人tv| 欧美日韩一区高清| 精品在线一区二区三区| 中文字幕一区二区三区不卡在线| 色偷偷久久一区二区三区| 日本欧美在线观看| 2020国产精品自拍| 91在线视频播放| 三级欧美韩日大片在线看| 国产成人综合自拍| ㊣最新国产の精品bt伙计久久| 欧美在线观看一区| 激情综合色播五月| 亚洲男女一区二区三区| 91超碰这里只有精品国产| 国产精品一区二区你懂的| 亚洲人成在线播放网站岛国| 日韩午夜电影av| 不卡的电视剧免费网站有什么| 亚洲国产精品精华液网站| 国产欧美精品一区二区色综合| 色偷偷成人一区二区三区91| 老司机午夜精品99久久| 一区二区三区在线视频播放| 精品国产免费一区二区三区香蕉| 色香蕉成人二区免费| 国内国产精品久久| 天天综合天天做天天综合| 国产欧美日韩亚州综合 | 欧美mv和日韩mv的网站| 91社区在线播放| 精品一二线国产| 一二三区精品视频| 国产亚洲女人久久久久毛片| 欧美日本韩国一区| aaa欧美日韩| 国产一区二区免费看| 亚洲午夜免费视频| 中文字幕一区免费在线观看| 欧美va亚洲va| 91麻豆精品国产综合久久久久久| 99久久精品免费看| 国产福利一区二区三区视频| 美女诱惑一区二区| 丝袜亚洲另类丝袜在线| 亚洲美女精品一区| 国产精品蜜臀av| 久久久综合九色合综国产精品| 日本久久电影网| 日本韩国欧美一区| 972aa.com艺术欧美| 国产成人一区二区精品非洲| 久草精品在线观看| 理论片日本一区| 免费的成人av| 免费欧美在线视频| 美女视频免费一区| 青青青爽久久午夜综合久久午夜| 亚洲高清免费在线| 亚洲成人av一区| 天天影视网天天综合色在线播放| 一区二区三区产品免费精品久久75| 最新国产成人在线观看| 国产精品毛片久久久久久| 国产精品少妇自拍| 国产精品乱码久久久久久| 国产精品午夜春色av| 国产精品视频你懂的| 亚洲欧洲国产日韩| 亚洲色大成网站www久久九九| 亚洲精品免费在线播放| 一区二区在线观看av| 亚洲国产日韩综合久久精品| 亚洲一区二区精品3399| 性感美女久久精品| 麻豆精品国产91久久久久久| 精品一区二区在线免费观看| 国产真实乱对白精彩久久| 国产a久久麻豆| 一本久久精品一区二区| 91极品美女在线| 91精品国产综合久久久久| 日韩美女视频在线| 日本一区二区三区久久久久久久久不 | 国产精品久久久久aaaa| 亚洲同性同志一二三专区| 一区二区在线观看免费| 日韩福利视频网| 国产福利一区二区三区视频在线| av动漫一区二区| 精品视频在线看| 精品毛片乱码1区2区3区| 欧美在线不卡视频| 911精品国产一区二区在线| 久久青草欧美一区二区三区| 欧美韩国日本不卡| 亚洲一区国产视频| 久久99国产精品麻豆| 成人a免费在线看| 欧美男同性恋视频网站| 精品播放一区二区| 亚洲欧美精品午睡沙发| 日本91福利区| 成人伦理片在线| 欧美一区二区三区四区高清| 日本一区二区动态图| 午夜私人影院久久久久| 国产麻豆成人传媒免费观看| 一本色道久久综合亚洲aⅴ蜜桃| 日韩欧美国产综合一区| 《视频一区视频二区| 免费精品视频在线| 91性感美女视频| 精品99999| 偷拍一区二区三区| 成人av在线网| 欧美xxxxxxxxx| 亚洲一区二区3| 国产福利一区二区| 日韩午夜在线观看| 亚洲美女屁股眼交3| 国产精品一区二区三区乱码| 欧美日韩二区三区| 中文字幕一区二区三区不卡| 久久66热偷产精品| 欧美日韩在线播放三区| 1024精品合集| 国产精品中文字幕一区二区三区| 欧美日韩一区精品| 亚洲婷婷在线视频| 激情成人午夜视频| 欧美色综合网站| 亚洲视频一区在线观看| 国产成人免费视| 日韩免费看网站| 亚洲夂夂婷婷色拍ww47| av成人老司机| 久久久精品人体av艺术| 麻豆精品一二三| 777a∨成人精品桃花网| 午夜欧美大尺度福利影院在线看| av毛片久久久久**hd| 国产精品久久午夜夜伦鲁鲁| 激情综合网av| 精品久久久久一区二区国产| 亚洲国产乱码最新视频| 色婷婷狠狠综合| 亚洲柠檬福利资源导航| 91在线观看成人| 亚洲欧美aⅴ...| 99re热视频精品| 国产精品大尺度| 99久久免费精品高清特色大片| 国产婷婷一区二区| 高清不卡在线观看av| 国产三级精品在线| 国产不卡一区视频| 久久久国际精品| 国产不卡视频在线播放| 日本一区二区三区四区在线视频| 国产成人免费视频网站高清观看视频| 久久女同性恋中文字幕| 国产精品白丝av| 日韩一区欧美小说| 色婷婷久久久久swag精品 | 激情综合色综合久久综合| 精品国产百合女同互慰| 国产一级精品在线| 欧美va亚洲va香蕉在线| 国产91清纯白嫩初高中在线观看| 国产欧美精品一区aⅴ影院| 99精品久久久久久| 亚洲午夜精品一区二区三区他趣| 欧美日韩中文字幕一区| 久久精品久久精品| 亚洲精品一线二线三线无人区| 国产精品一区二区三区乱码| 国产精品久久久久天堂| 色av成人天堂桃色av| 日本美女视频一区二区| 欧美精品一区二区在线观看| 风流少妇一区二区| 亚洲午夜国产一区99re久久| 6080亚洲精品一区二区| 国产精品88av| 一区二区三区日韩欧美精品| 欧美一区二区二区| 粉嫩高潮美女一区二区三区| 亚洲精品va在线观看| 精品国产污污免费网站入口| 99久久久无码国产精品| 日本v片在线高清不卡在线观看| 久久久久久久久久久电影|