Current state
This commit is contained in:
121
public/legacy/assets/plugins/numerator/jquery-numerator.js
vendored
Normal file
121
public/legacy/assets/plugins/numerator/jquery-numerator.js
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
/*
|
||||
* jQuery Numerator Plugin 0.2.0
|
||||
* https://github.com/garethdn/jquery-numerator
|
||||
*
|
||||
* Copyright 2013, Gareth Nolan
|
||||
* http://ie.linkedin.com/in/garethnolan/
|
||||
|
||||
* Based on jQuery Boilerplate by Zeno Rocha with the help of Addy Osmani
|
||||
* http://jqueryboilerplate.com
|
||||
*
|
||||
* Licensed under the MIT license:
|
||||
* http://www.opensource.org/licenses/MIT
|
||||
*/
|
||||
|
||||
;(function ( $, window, document, undefined ) {
|
||||
|
||||
var pluginName = "numerator",
|
||||
defaults = {
|
||||
easing: 'swing',
|
||||
duration: 500,
|
||||
delimiter: undefined,
|
||||
rounding: 0,
|
||||
toValue: undefined,
|
||||
fromValue: undefined,
|
||||
queue: false,
|
||||
onStart: function(){},
|
||||
onStep: function(){},
|
||||
onProgress: function(){},
|
||||
onComplete: function(){}
|
||||
};
|
||||
|
||||
function Plugin ( element, options ) {
|
||||
this.element = element;
|
||||
this.settings = $.extend( {}, defaults, options );
|
||||
this._defaults = defaults;
|
||||
this._name = pluginName;
|
||||
this.init();
|
||||
}
|
||||
|
||||
Plugin.prototype = {
|
||||
init: function () {
|
||||
this.parseElement();
|
||||
this.setValue();
|
||||
},
|
||||
|
||||
parseElement: function () {
|
||||
var elText = $(this.element).text().trim();
|
||||
|
||||
this.settings.fromValue = this.format(elText);
|
||||
},
|
||||
|
||||
setValue: function() {
|
||||
var self = this;
|
||||
|
||||
$({value: self.settings.fromValue}).animate({value: self.settings.toValue}, {
|
||||
|
||||
duration: parseInt(self.settings.duration),
|
||||
|
||||
easing: self.settings.easing,
|
||||
|
||||
start: self.settings.onStart,
|
||||
|
||||
step: function(now, fx) {
|
||||
$(self.element).text(self.format(now));
|
||||
// accepts two params - (now, fx)
|
||||
self.settings.onStep(now, fx);
|
||||
},
|
||||
|
||||
// accepts three params - (animation object, progress ratio, time remaining(ms))
|
||||
progress: self.settings.onProgress,
|
||||
|
||||
complete: self.settings.onComplete
|
||||
});
|
||||
},
|
||||
|
||||
format: function(value){
|
||||
var self = this;
|
||||
|
||||
if ( parseInt(this.settings.rounding ) < 1) {
|
||||
value = parseInt(value);
|
||||
} else {
|
||||
value = parseFloat(value).toFixed( parseInt(this.settings.rounding) );
|
||||
}
|
||||
|
||||
if (self.settings.delimiter) {
|
||||
return this.delimit(value)
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
},
|
||||
|
||||
delimit: function(value){
|
||||
var self = this;
|
||||
|
||||
value = value.toString();
|
||||
|
||||
if (self.settings.rounding && parseInt(self.settings.rounding) > 0) {
|
||||
var decimals = value.substring( (value.length - (self.settings.rounding + 1)), value.length ),
|
||||
wholeValue = value.substring( 0, (value.length - (self.settings.rounding + 1)));
|
||||
|
||||
return self.addCommas(wholeValue) + decimals;
|
||||
} else {
|
||||
return self.addCommas(value);
|
||||
}
|
||||
},
|
||||
|
||||
addCommas: function(value){
|
||||
return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.settings.delimiter);
|
||||
}
|
||||
};
|
||||
|
||||
$.fn[ pluginName ] = function ( options ) {
|
||||
return this.each(function() {
|
||||
if ( $.data( this, "plugin_" + pluginName ) ) {
|
||||
$.data(this, 'plugin_' + pluginName, null);
|
||||
}
|
||||
$.data( this, "plugin_" + pluginName, new Plugin( this, options ) );
|
||||
});
|
||||
};
|
||||
|
||||
})( jQuery, window, document );
|
||||
Reference in New Issue
Block a user