Hi all -
Bit of a newbie here, so apologies for the stupid q - hopefully this one is easily solved.
I'm trying to do add 4 countdown boxes to a website - I can find scripts for basic countdowns, but can't get it so that it has 4 on the one page as I'm really new to jquery. For example, I'd like to have 4 spans, (timer, timer2, timer 3 etc)
This is the code i have:
HTML:
- <span class="timer"></span>
- <hr/>
- <span id="help">From: 50 - To: 2500 / Over 5000 Milli-Seconds</span>
JS:
- (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);
- jQuery(function($) {
- $('.timer').countTo({
- from: 50,
- to: 2500,
- speed: 5000,
- refreshInterval: 50,
- onComplete: function(value) {
- console.debug(this);
- }
- });
- });
Many thanks!