Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/08/2011, 07:00
netkuup
 
Fecha de Ingreso: diciembre-2009
Mensajes: 92
Antigüedad: 14 años, 5 meses
Puntos: 13
Respuesta: Reloj Cuenta atrás (Múltiples cuentas)

He añadido lo que está en rojo.

Código:
<script>
/* código de Douglas Crockford, para crear un objeto que hereda de otro
http://javascript.crockford.com/prototypal.html
*/
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}


var cuentaAtras = {
intervalID : 0,
horas : 0,
minutos : 0,
segundos : 0,

inicializar : function(horas, minutos, segundos) {
this.horas = horas;
this.minutos = minutos;
this.segundos = segundos;
},

restar : function() {
if(this.segundos > 0) {
this.segundos--;
} else{
if (this.minutos > 0) {
this.segundos = 59;
this.minutos--;
} else {
if(this.horas > 0) {
this.minutos = 59;
this.horas--;
}
}
}
},

mostrar : function(nodo) {
if ( (this.horas === this.minutos) && (this.minutos == this.segundos) && (this.segundos == 0) ) {
this.terminado(nodo);
} else {
var tiempo = [ this.horas, this.minutos, this.segundos ];
for (i=0; i < 3; i++) {
if (tiempo[i] < 10) tiempo[i] = "0" + tiempo[i];
}
nodo.innerHTML = tiempo.join(':');
}
},

terminado : function(nodo) {
nodo.innerHTML = 'TERMINADO!';
window.clearInterval(this.intervalID);
}

};


var cuentaAtras1 = Object.create(cuentaAtras);
var cuentaAtras2 = Object.create(cuentaAtras);
var cuentaAtras3 = Object.create(cuentaAtras);
var cuentaAtras4 = Object.create(cuentaAtras);

cuentaAtras1.inicializar(0, 0, 10);
cuentaAtras2.inicializar(2, 45, 0);
cuentaAtras3.inicializar(0, 0, 20);
cuentaAtras4.inicializar(0, 0, 30);

cuentaAtras1.intervalID = setInterval(function() {
cuentaAtras1.mostrar(document.getElementById('coso1'));
cuentaAtras1.restar();
}, 1000);

cuentaAtras2.intervalID = setInterval(function() {
cuentaAtras2.mostrar(document.getElementById('coso2'));
cuentaAtras2.restar();
}, 1000);

cuentaAtras3.intervalID = setInterval(function() {
cuentaAtras3.mostrar(document.getElementById('coso3'));
cuentaAtras3.restar();
}, 1000);

cuentaAtras4.intervalID = setInterval(function() {
cuentaAtras4.mostrar(document.getElementById('coso4'));
cuentaAtras4.restar();
}, 1000);

</script>

 

<span id="coso1"></span><br />
<span id="coso2"></span><br />
<span id="coso3"></span><br />
<span id="coso4"></span><br />  

Saludos.