jquery.animateNumber.min.js 2.21 KB
/*
 jQuery animateNumber plugin v0.0.10
 (c) 2013, Alexandr Borisov.
 https://github.com/aishek/jquery-animateNumber
 */
(function (d) {
    var p = function (b) {
        return b.split("").reverse().join("")
    }, l = {numberStep: function (b, a) {
        var e = Math.floor(b);
        d(a.elem).text(e)
    }}, h = function (b) {
        var a = b.elem;
        a.nodeType && a.parentNode && (a = a._animateNumberSetter, a || (a = l.numberStep), a(b.now, b))
    };
    d.Tween && d.Tween.propHooks ? d.Tween.propHooks.number = {set: h} : d.fx.step.number = h;
    d.animateNumber = {numberStepFactories: {append: function (b) {
        return function (a, e) {
            var k = Math.floor(a);
            d(e.elem).prop("number", a).text(k + b)
        }
    }, separator: function (b, a) {
        b = b || " ";
        a =
            a || 3;
        return function (e, k) {
            var c = Math.floor(e).toString(), s = d(k.elem);
            if (c.length > a) {
                for (var f = c, g = a, l = f.split("").reverse(), c = [], m, q, n, r = 0, h = Math.ceil(f.length / g); r < h; r++) {
                    m = "";
                    for (n = 0; n < g; n++) {
                        q = r * g + n;
                        if (q === f.length)break;
                        m += l[q]
                    }
                    c.push(m)
                }
                f = c.length - 1;
                g = p(c[f]);
                c[f] = p(parseInt(g, 10).toString());
                c = c.join(b);
                c = p(c)
            }
            s.prop("number", e).text(c)
        }
    }}};
    d.fn.animateNumber = function () {
        for (var b = arguments[0], a = d.extend({}, l, b), e = d(this), k = [a], c = 1, h = arguments.length; c < h; c++)k.push(arguments[c]);
        if (b.numberStep) {
            var f =
                this.each(function () {
                    this._animateNumberSetter = b.numberStep
                }), g = a.complete;
            a.complete = function () {
                f.each(function () {
                    delete this._animateNumberSetter
                });
                g && g.apply(this, arguments)
            }
        }
        return e.animate.apply(e, k)
    }
})(jQuery);