t/ *
* complemento jquery-counter
*
* Copyright (c) 2009 Martin Conte Mac Donell
* Doble licencia bajo las licencias MIT y GPL.
* http://docs.jquery.com/License
* /
jQuery.fn.countdown = función (opciones de usuario)
{
// Opciones predeterminadas
var options = {
stepTime: 60,
// startTime y formato DEBEN seguir el mismo formato.
// tampoco puede especificar un formato desordenado (por ejemplo, hh: ss: mm es incorrecto)
formato: "dd: hh: mm: ss",
startTime: "01: 12: 32: 55",
Imágenes de dígitos: 6,
ancho de dígitos: 53,
altura de dígitos: 77,
timerEnd: function () {},
imagen: "digits.png"
};
var dígitos = [], intervalo;
// Dibuja dígitos en un contenedor dado
var createDigits = función (donde)
{
var c = 0;
// Itere cada dígito de startTime, si no es un dígito
// asumiremos que es un separador
para (var i = 0; i = 0)
{
elem = $ (''). css ({
height: options.digitHeight * options.digitImages * 10,
float: 'izquierda', fondo: 'url (\' '+ opciones.imagen +' \ ')',
width: options.digitWidth});
digits.push (elem);
margin (c, - ((parseInt (options.startTime [i]) * options.digitHeight *
options.digitImages)));
dígitos [c] .__ max = 9;
// Agregue los dígitos máximos, por ejemplo, el primer dígito de los minutos (mm) tiene
// un máximo de 5. El máximo condicional se utiliza cuando el dígito de la izquierda tiene alcance
// El máximo. Por ejemplo, el segundo dígito de "horas" tiene un máximo condicional de 4
switch (options.format [i]) {
caso 'h':
dígitos [c] .__ max = (c% 2 == 0)? 2: 9;
si (c% 2 == 0)
dígitos [c] .__ condmax = 4;
rotura;
caso 'd':
dígitos [c] .__ max = 9;
rotura;
caso 'm':
casos':
dígitos [c] .__ max = (c% 2 == 0)? 5: 9;
}
++ c;
}
demás
elem = $ (''). css ({float: 'left'})
.text (options.startTime [i]);
donde.append (elem)
}
};
// Establecer u obtener el margen del elemento
var margin = function (elem, val)
{
si (val! == indefinido)
devolver dígitos [elem] .css ({'marginTop': val + 'px'});
return parseInt (dígitos [elem] .css ('marginTop'). replace ('px', ''));
};
// Hace el movimiento. Esto se hace mediante los pasos de "digitImages".
var moveStep = función (elem)
{
digits [elem] ._ digitInitial = - (digits [elem] .__ max * options.digitHeight * options.digitImages);
función de retorno _move () {
mtop = margin (elem) + options.digitHeight;
if (mtop == options.digitHeight) {
margen (elem, dígitos [elem] ._ digitInitial);
if (elem> 0) moveStep (elem - 1) ();
demás
{
clearInterval (intervalo);
para (var i = 0; i 0) && (dígitos [elem] .__ condmax! == indefinido) &&
(dígitos [elem - 1] ._ digitInitial == margin (elem - 1)))
margin (elem, - (dígitos [elem] .__ condmax * options.digitHeight * options.digitImages));
regreso;
}
margen (elem, mtop);
if (margin (elem) / options.digitHeight% options.digitImages! = 0)
setTimeout (_move, options.stepTime);
if (mtop == 0) dígitos [elem] .__ ismax = true;
}
};
$ .extend (opciones, opciones de usuario);
this.css ({altura: options.digitHeight, overflow: 'hidden'});
createDigits (esto);
intervalo = setInterval (moveStep (digits.length - 1), 1000);
};
Comentarios
Publicar un comentario