Вход Регистрация
Файл: Source/assets/js/countdown.js
Строк: 123
<?php
/*
 * jquery-counter plugin
 *
 * Copyright (c) 2009 Martin Conte Mac Donell <Reflejo@gmail.com>
 * Dual licensed under the MIT and GPL licenses.
 * http://docs.jquery.com/License
 */
jQuery.fn.countdown = function(userOptions)
{
  
// Default options
  
var options = {
    
stepTime60,
    
// startTime and format MUST follow the same format.
    // also you cannot specify a format unordered (e.g. hh:ss:mm is wrong)
    
format"dd:hh:mm:ss",
    
startTime"01:12:32:55",
    
digitImages6,
    
digitWidth42,
    
digitHeight60,
    
timerEnd: function(){},
    
image"digits.png"
  
};
  var 
digits = [], interval;

  
// Draw digits in given container
  
var createDigits = function(where
  {
    var 
0;
    
// Iterate each startTime digit, if it is not a digit
    // we'll asume that it's a separator
    
for (var 0options.startTime.lengthi++)
    {
      if (
parseInt(options.startTime[i]) >= 0
      {
        
elem = $('<div id="cnt_' '" class="cntDigit" />').css({
          
heightoptions.digitHeight options.digitImages 10
          
float'left'background'url('' + options.image + '')',
          
widthoptions.digitWidth});
        
digits.push(elem);
        
margin(c, -((parseInt(options.startTime[i]) * options.digitHeight *
                              
options.digitImages)));
        
digits[c].__max 9;
        
// Add max digits, for example, first digit of minutes (mm) has 
        // a max of 5. Conditional max is used when the left digit has reach
        // the max. For example second "hours" digit has a conditional max of 4 
        
switch (options.format[i]) {
          case 
'h':
            
digits[c].__max = (== 0) ? 29;
            if (
== 0)
              
digits[c].__condmax 4;
            break;
          case 
'd'
            
digits[c].__max 9;
            break;
          case 
'm':
          case 
's':
            
digits[c].__max = (== 0) ? 59;
        }
        ++
c;
      }
      else 
        
elem = $('<div class="cntSeparator"/>').css({float'left'})
                .
text(options.startTime[i]);
      
where.append('<div>');
      
where.append(elem)
      
where.append('</div>');
    }
  };
  
  
// Set or get element margin
  
var margin = function(elemval
  {
    if (
val !== undefined)
      return 
digits[elem].css({'marginTop'val 'px'});

    return 
parseInt(digits[elem].css('marginTop').replace('px'''));
  };

  
// Makes the movement. This is done by "digitImages" steps.
  
var moveStep = function(elem
  {
    
digits[elem]._digitInitial = -(digits[elem].__max options.digitHeight options.digitImages);
    return function 
_move() {
      
mtop margin(elem) + options.digitHeight;
      if (
mtop == options.digitHeight) {
        
margin(elemdigits[elem]._digitInitial);
        if (
elem 0moveStep(elem 1)();
        else 
        {
          
clearInterval(interval);
          for (var 
i=0digits.lengthi++) margin(i0);
          
options.timerEnd();
          return;
        }
        if ((
elem 0) && (digits[elem].__condmax !== undefined) && 
            (
digits[elem 1]._digitInitial == margin(elem 1)))
          
margin(elem, -(digits[elem].__condmax options.digitHeight options.digitImages));
        return;
      }

      
margin(elemmtop);
      if (
margin(elem) / options.digitHeight options.digitImages != 0)
        
setTimeout(_moveoptions.stepTime);

      if (
mtop == 0digits[elem].__ismax true;
    }
  };

  $.
extend(optionsuserOptions);
  
this.css({heightoptions.digitHeightoverflow'hidden'});
  
createDigits(this);
  
interval setInterval(moveStep(digits.length 1), 1000);
};
?>
Онлайн: 2
Реклама