Blame | Letzte Änderung | Log anzeigen | RSS feed
/*!* jquery.counterup.js 1.0** Copyright 2013, Benjamin Intal http://gambit.ph @bfintal* Released under the GPL v2 License** Date: Nov 26, 2013*/(function( $ ){"use strict";$.fn.counterUp = function( options ) {// Defaultsvar settings = $.extend({'time': 400,'delay': 10}, options);return this.each(function(){// Store the objectvar $this = $(this);var $settings = settings;var counterUpper = function() {var divisions = $settings.time / $settings.delay;var num = $this.attr('data-value');var nums = [num];var isComma = /[0-9]+,[0-9]+/.test(num);num = num.replace(/,/g, '');var isInt = /^[0-9]+$/.test(num);var isFloat = /^[0-9]+\.[0-9]+$/.test(num);var decimalPlaces = isFloat ? (num.split('.')[1] || []).length : 0;// Generate list of incremental numbers to displayfor (var i = divisions; i >= 1; i--) {// Preserve as int if input was intvar newNum = parseInt(num / divisions * i);// Preserve float if input was floatif (isFloat) {newNum = parseFloat(num / divisions * i).toFixed(decimalPlaces);}// Preserve commas if input had commasif (isComma) {while (/(\d+)(\d{3})/.test(newNum.toString())) {newNum = newNum.toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2');}}nums.unshift(newNum);}$this.data('counterup-nums', nums);$this.text('0');// Updates the number until we're donevar f = function() {$this.text($this.data('counterup-nums').shift());if ($this.data('counterup-nums').length) {setTimeout($this.data('counterup-func'), $settings.delay);} else {delete $this.data('counterup-nums');$this.data('counterup-nums', null);$this.data('counterup-func', null);}};$this.data('counterup-func', f);// Start the count upsetTimeout($this.data('counterup-func'), $settings.delay);};// Perform counts when the element gets into view$this.waypoint(counterUpper, { offset: '100%', triggerOnce: true });});};})( jQuery );