Spaces:
Runtime error
Runtime error
| (function($) { | |
| $.fn.countTo = function(options) { | |
| // merge the default plugin settings with the custom options | |
| options = $.extend({}, $.fn.countTo.defaults, options || {}); | |
| // how many times to update the value, and how much to increment the value on each update | |
| var loops = Math.ceil(options.speed / options.refreshInterval), | |
| increment = (options.to - options.from) / loops; | |
| return $(this).each(function() { | |
| var _this = this, | |
| loopCount = 0, | |
| value = options.from, | |
| interval = setInterval(updateTimer, options.refreshInterval); | |
| function updateTimer() { | |
| value += increment; | |
| loopCount++; | |
| $(_this).html(value.toFixed(options.decimals)); | |
| if (typeof(options.onUpdate) == 'function') { | |
| options.onUpdate.call(_this, value); | |
| } | |
| if (loopCount >= loops) { | |
| clearInterval(interval); | |
| value = options.to; | |
| if (typeof(options.onComplete) == 'function') { | |
| options.onComplete.call(_this, value); | |
| } | |
| } | |
| } | |
| }); | |
| }; | |
| $.fn.countTo.defaults = { | |
| from: 0, // the number the element should start at | |
| to: 100, // the number the element should end at | |
| speed: 1000, // how long it should take to count between the target numbers | |
| refreshInterval: 100, // how often the element should be updated | |
| decimals: 0, // the number of decimal places to show | |
| onUpdate: null, // callback method for every time the element is updated, | |
| onComplete: null, // callback method for when the element finishes updating | |
| }; | |
| })(jQuery); |