jQuery.fx.timer

JQuery中特效动画中运用到的定时方法,调用方式:jQuery.fx.timer(function)

通过jQuery.fn.extend添加

运行步骤:

1.运行jQuery.fx.timer(function) 传入的函数;

2.函数返回值!=false,压入函数队列Query.timers,之后调用jQuery.fx.start();

3.jQuery.fx.start函数中设置定时调用jQuery.fx.tick,setInterval(jQuery.fx.tick, jQuery.fx.interval);

4.jQuery.fx.tick函数中遍历函数队列JQuery.timers,将执行返回值=false的函数移出队列;

5.检查队列,假如队列为空调用jQuery.fx.stop()停止定时器;

 

    jQuery.timers = [];
    jQuery.fx.tick = function () {
        var timer,
            timers = jQuery.timers,
            i = 0;

        fxNow = jQuery.now();

        for (; i < timers.length; i++) {
            timer = timers[i];
            // Checks the timer has not already been removed
            if (!timer() && timers[i] === timer) {
                timers.splice(i--, 1);
            }
        }

        if (!timers.length) {
            jQuery.fx.stop();
        }
        fxNow = undefined;
    };

    jQuery.fx.timer = function (timer) {
        if (timer() && jQuery.timers.push(timer)) {
            jQuery.fx.start();
        }
    };

    jQuery.fx.interval = 13;

    jQuery.fx.start = function () {
        if (!timerId) {
            timerId = setInterval(jQuery.fx.tick, jQuery.fx.interval);
        }
    };

    jQuery.fx.stop = function () {
        clearInterval(timerId);
        timerId = null;
    };

 

 posted on 2014-10-22 23:17  Grart  阅读(1230)  评论(0)    收藏  举报