Foros del Web » Programando para Internet » Javascript »

Reloj Cuenta atrás (Múltiples cuentas)

Estas en el tema de Reloj Cuenta atrás (Múltiples cuentas) en el foro de Javascript en Foros del Web. Hola buenos dias. Acabo de aterrizar en este foro y he visto que es uno de los más completos sobre programación asi que os escribo. ...
  #1 (permalink)  
Antiguo 18/08/2011, 04:11
 
Fecha de Ingreso: agosto-2011
Mensajes: 45
Antigüedad: 12 años, 8 meses
Puntos: 0
Reloj Cuenta atrás (Múltiples cuentas)

Hola buenos dias.

Acabo de aterrizar en este foro y he visto que es uno de los más completos sobre programación asi que os escribo.

Mi duda es como hacer 4 multiples cuenta atrás. Me he mirado un post de hace tiempo que hablaba de eso y solo he conseguido hacer 2 (copiando el código)

Mi duda surge cuando intento hacer 4. Alguien sabe sobre el tema?

Gracias y un saludo!


PD: Este el el codigo para 2.


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);

cuentaAtras1.inicializar(0, 0, 10);
cuentaAtras2.inicializar(2, 45, 0);

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

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

</script>

<span id="coso1"></span><br />
<span id="coso2"></span><br />
  #2 (permalink)  
Antiguo 18/08/2011, 07:00
 
Fecha de Ingreso: diciembre-2009
Mensajes: 92
Antigüedad: 14 años, 4 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.
  #3 (permalink)  
Antiguo 18/08/2011, 07:37
 
Fecha de Ingreso: agosto-2011
Mensajes: 45
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Reloj Cuenta atrás (Múltiples cuentas)

Muchas Gracias!! :)
  #4 (permalink)  
Antiguo 24/09/2011, 11:25
Avatar de syntex  
Fecha de Ingreso: noviembre-2002
Ubicación: Cataluña
Mensajes: 978
Antigüedad: 21 años, 5 meses
Puntos: 4
Respuesta: Reloj Cuenta atrás (Múltiples cuentas)

Hola muy buenas y este mismo script con dias?
Como sería?

Se podria hacer con una function tipo

<script>countdown(name_id,fecha</script>
<div id="name_id"></div>

<script>countdown(name_id,fecha</script>
<div id="name_id"></div>

<script>countdown(name_id,fecha</script>
<div id="name_id"></div>

Y así sucesivamente?

Muchas gracias.
__________________
------------------------------------------------
La paciencia es el rey de la ciencia
------------------------------------------------


Etiquetas: html, reloj
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:51.