cms-token/assets/frontend/js/jquery.counterup.min.js

57 lines
1.9 KiB
JavaScript

/**
* Jquery.rcounter.js
* Version: 1.0.0
* Author: Sharifur
* Inspired By Benjamin Intal
* */
(function($) {
'use strict';
$.fn.rCounter = function(options) {
var settings = $.extend({
duration: 20,
easing: 'swing',
}, options);
return this.each(function() {
var $this = $(this);
var startCounter = function() {
var numbers = [];
var length = $this.length;
var number = $this.text();
var isComma = /[,\-]/.test(number);
var isFloat = /[,\-]/.test(number);
var number = number.replace(/,/g, '');
var divisions = settings.duration;
var decimalPlaces = isFloat ? (number.split('.')[1] || []).length : 0;
// make number string to array for displaying counterup
for (var rcn = divisions; rcn >= 1; rcn--) {
var newNum = parseInt(number / divisions * rcn);
if (isFloat) {
newNum = parseFloat(number / divisions * rcn).toFixed(decimalPlaces);
}
if (isComma) {
while (/(\d+)(\d{3})/.test(newNum.toString())) {
newNum = newNum.toString().replace(/(\d+)(\d{3})/, '$1' + ',' + '$2');
}
}
numbers.unshift(newNum);
}
var counterUpDisplay = function() {
$this.text(numbers.shift());
setTimeout(counterUpDisplay, settings.duration);
};
setTimeout(counterUpDisplay, settings.duration);
} // end function
//bind with waypoints
$this.waypoint(startCounter, { offset: '100%', triggerOnce: true });
});
}
}(jQuery));