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

📄 animation.js

📁 1.. 需要jdom.jar和bsf.jar,否则无法跟spring整合. 2.. dwr生成的javascript函数会自动加一个回调函数的参数,如原来的函数是checkExist(String
💻 JS
📖 第 1 页 / 共 4 页
字号:
            this.runtimeAttributes = {};            for (var attr in this.attributes) {                this.setRuntimeAttribute(attr);            }                        isAnimated = true;            actualFrames = 0;            startTime = new Date();         };                /**         * Feeds the starting and ending values for each animated attribute to doMethod once per frame, then applies the resulting value to the attribute(s).         * @private         */                 var onTween = function() {            var data = {                duration: new Date() - this.getStartTime(),                currentFrame: this.currentFrame            };                        data.toString = function() {                return (                    'duration: ' + data.duration +                    ', currentFrame: ' + data.currentFrame                );            };                        this.onTween.fire(data);                        var runtimeAttributes = this.runtimeAttributes;                        for (var attr in runtimeAttributes) {                this.setAttribute(attr, this.doMethod(attr, runtimeAttributes[attr].start, runtimeAttributes[attr].end), runtimeAttributes[attr].unit);             }                        actualFrames += 1;        };                var onComplete = function() {            var actual_duration = (new Date() - startTime) / 1000 ;                        var data = {                duration: actual_duration,                frames: actualFrames,                fps: actualFrames / actual_duration            };                        data.toString = function() {                return (                    'duration: ' + data.duration +                    ', frames: ' + data.frames +                    ', fps: ' + data.fps                );            };                        isAnimated = false;            actualFrames = 0;            this.onComplete.fire(data);        };                /**         * Custom event that fires after onStart, useful in subclassing         * @private         */            this._onStart = new YAHOO.util.CustomEvent('_start', this, true);        /**         * Custom event that fires when animation begins         * Listen via subscribe method (e.g. myAnim.onStart.subscribe(someFunction)         * @event onStart         */            this.onStart = new YAHOO.util.CustomEvent('start', this);                /**         * Custom event that fires between each frame         * Listen via subscribe method (e.g. myAnim.onTween.subscribe(someFunction)         * @event onTween         */        this.onTween = new YAHOO.util.CustomEvent('tween', this);                /**         * Custom event that fires after onTween         * @private         */        this._onTween = new YAHOO.util.CustomEvent('_tween', this, true);                /**         * Custom event that fires when animation ends         * Listen via subscribe method (e.g. myAnim.onComplete.subscribe(someFunction)         * @event onComplete         */        this.onComplete = new YAHOO.util.CustomEvent('complete', this);        /**         * Custom event that fires after onComplete         * @private         */        this._onComplete = new YAHOO.util.CustomEvent('_complete', this, true);        this._onStart.subscribe(onStart);        this._onTween.subscribe(onTween);        this._onComplete.subscribe(onComplete);    }};/** * Handles animation queueing and threading. * Used by Anim and subclasses. * @class AnimMgr * @namespace YAHOO.util */YAHOO.util.AnimMgr = new function() {    /**      * Reference to the animation Interval.     * @property thread     * @private     * @type Int     */    var thread = null;        /**      * The current queue of registered animation objects.     * @property queue     * @private     * @type Array     */        var queue = [];    /**      * The number of active animations.     * @property tweenCount     * @private     * @type Int     */            var tweenCount = 0;    /**      * Base frame rate (frames per second).      * Arbitrarily high for better x-browser calibration (slower browsers drop more frames).     * @property fps     * @type Int     *      */    this.fps = 1000;    /**      * Interval delay in milliseconds, defaults to fastest possible.     * @property delay     * @type Int     *      */    this.delay = 1;    /**     * Adds an animation instance to the animation queue.     * All animation instances must be registered in order to animate.     * @method registerElement     * @param {object} tween The Anim instance to be be registered     */    this.registerElement = function(tween) {        queue[queue.length] = tween;        tweenCount += 1;        tween._onStart.fire();        this.start();    };        /**     * removes an animation instance from the animation queue.     * All animation instances must be registered in order to animate.     * @method unRegister     * @param {object} tween The Anim instance to be be registered     * @param {Int} index The index of the Anim instance     * @private     */    this.unRegister = function(tween, index) {        tween._onComplete.fire();        index = index || getIndex(tween);        if (index != -1) {            queue.splice(index, 1);        }                tweenCount -= 1;        if (tweenCount <= 0) {            this.stop();        }    };        /**     * Starts the animation thread.	* Only one thread can run at a time.     * @method start     */        this.start = function() {        if (thread === null) {            thread = setInterval(this.run, this.delay);        }    };    /**     * Stops the animation thread or a specific animation instance.     * @method stop     * @param {object} tween A specific Anim instance to stop (optional)     * If no instance given, Manager stops thread and all animations.     */        this.stop = function(tween) {        if (!tween) {            clearInterval(thread);                        for (var i = 0, len = queue.length; i < len; ++i) {                if ( queue[0].isAnimated() ) {                    this.unRegister(queue[0], 0);                  }            }            queue = [];            thread = null;            tweenCount = 0;        }        else {            this.unRegister(tween);        }    };        /**     * Called per Interval to handle each animation frame.     * @method run     */        this.run = function() {        for (var i = 0, len = queue.length; i < len; ++i) {            var tween = queue[i];            if ( !tween || !tween.isAnimated() ) { continue; }            if (tween.currentFrame < tween.totalFrames || tween.totalFrames === null)            {                tween.currentFrame += 1;                                if (tween.useSeconds) {                    correctFrame(tween);                }                tween._onTween.fire();                      }            else { YAHOO.util.AnimMgr.stop(tween, i); }        }    };        var getIndex = function(anim) {        for (var i = 0, len = queue.length; i < len; ++i) {            if (queue[i] == anim) {                return i; // note return;            }        }        return -1;    };        /**     * On the fly frame correction to keep animation on time.     * @method correctFrame     * @private     * @param {Object} tween The Anim instance being corrected.     */    var correctFrame = function(tween) {        var frames = tween.totalFrames;        var frame = tween.currentFrame;        var expected = (tween.currentFrame * tween.duration * 1000 / tween.totalFrames);        var elapsed = (new Date() - tween.getStartTime());        var tweak = 0;                if (elapsed < tween.duration * 1000) { // check if falling behind            tweak = Math.round((elapsed / expected - 1) * tween.currentFrame);        } else { // went over duration, so jump to end            tweak = frames - (frame + 1);         }        if (tweak > 0 && isFinite(tweak)) { // adjust if needed            if (tween.currentFrame + tweak >= frames) {// dont go past last frame                tweak = frames - (frame + 1);            }                        tween.currentFrame += tweak;              }    };};/** * Used to calculate Bezier splines for any number of control points. * @class Bezier * @namespace YAHOO.util * */YAHOO.util.Bezier = new function() {    /**     * Get the current position of the animated element based on t.     * Each point is an array of "x" and "y" values (0 = x, 1 = y)     * At least 2 points are required (start and end).     * First point is start. Last point is end.     * Additional control points are optional.          * @method getPosition     * @param {Array} points An array containing Bezier points     * @param {Number} t A number between 0 and 1 which is the basis for determining current position     * @return {Array} An array containing int x and y member data     */    this.getPosition = function(points, t) {          var n = points.length;        var tmp = [];        for (var i = 0; i < n; ++i){            tmp[i] = [points[i][0], points[i][1]]; // save input        }                for (var j = 1; j < n; ++j) {            for (i = 0; i < n - j; ++i) {                tmp[i][0] = (1 - t) * tmp[i][0] + t * tmp[parseInt(i + 1, 10)][0];                tmp[i][1] = (1 - t) * tmp[i][1] + t * tmp[parseInt(i + 1, 10)][1];             }        }            return [ tmp[0][0], tmp[0][1] ];         };};(function() {/** * Anim subclass for color transitions. * <p>Usage: <code>var myAnim = new Y.ColorAnim(el, { backgroundColor: { from: '#FF0000', to: '#FFFFFF' } }, 1, Y.Easing.easeOut);</code> Color values can be specified with either 112233, #112233,  * [255,255,255], or rgb(255,255,255)</p> * @class ColorAnim * @namespace YAHOO.util * @requires YAHOO.util.Anim * @requires YAHOO.util.AnimMgr * @requires YAHOO.util.Easing * @requires YAHOO.util.Bezier * @requires YAHOO.util.Dom * @requires YAHOO.util.Event * @constructor * @extends YAHOO.util.Anim * @param {HTMLElement | String} el Reference to the element that will be animated * @param {Object} attributes The attribute(s) to be animated. * Each attribute is an object with at minimum a "to" or "by" member defined. * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). * All attribute names use camelCase. * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) */    YAHOO.util.ColorAnim = function(el, attributes, duration,  method) {

⌨️ 快捷键说明

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