Programación Web y Scripting > JavaScript
Ayuda Con Cronometro Descendente No Refrescar
(1/1)
osw2:
hola me llamo osw mi problema es el siguiente por favor quisiera que me ayuden con sus comentarios y con algunas soluciones:
bueno vera quiero hacer un cronometro descendente que empiese desde 2:00:00 minutos que que descienda 1:59:59 bueno el problema parece que no tiene nada de complicado este es mi codigo
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<script language="javascript">
//CRONOMETRO
//Autor: Iván Nieto Pérez
//Este script y otros muchos los puedes
//encontrar en
//MundoJavascript.com
var CronoID = null
var CronoEjecutandose = false
var decimas, segundos, minutos
decimas = 1
segundos = 1
minutos = 2
function DetenerCrono (){
if(CronoEjecutandose)
clearTimeout(CronoID)
CronoEjecutandose = false
}
function InicializarCrono () {
//inicializa contadores globales
decimas = decimas
segundos = segundos
minutos = minutos
//pone a cero los marcadores
document.crono.display.value = '00:00:0'
document.crono.parcial.value = '00:00:0'
}
function MostrarCrono () {
//incrementa el crono
decimas--
if ( decimas == 0 ) {
decimas = 9
segundos--
if ( segundos == 00 ) {
segundos = 60
minutos--
if ( minutos == 00 ) {
alert('Fin de la cuenta')
DetenerCrono()
return true
}
}
}
//configura la salida
var ValorCrono = ""
ValorCrono = (minutos < 10) ? "0" + minutos : minutos
ValorCrono += (segundos < 10) ? ":0" + segundos : ":" + segundos
ValorCrono += ":" + decimas
document.crono.display.value = ValorCrono
CronoID = setTimeout("MostrarCrono()", 100)
CronoEjecutandose = true
return true
}
function IniciarCrono () {
DetenerCrono()
InicializarCrono()
MostrarCrono()
}
function ObtenerParcial() {
//obtiene cuenta parcial
document.crono.parcial.value = document.crono.display.value
}
</script>
</head>
<body>
<form name="crono">
<div align="center"><center>
<p><input type="text" size="8" name="display" value="00:00:0"><input type="button" name="Iniciar" value=" Iniciar " onClick="IniciarCrono()"></p>
<p><input type="text" size="8" name="parcial" value="00:00:0 "> <input type="button" name="Parcial" value="Parcial" onClick="ObtenerParcial()"></p>
<p><input type="button" name="Parar" value=" Parar " onClick="DetenerCrono()"> <input type="button" name="Cero" value=" Cero " onClick="DetenerCrono(); InicializarCrono()"></p>
</center></div>
</form>
</body>
</html>
bueno lo saque de una pagina que no me acuerdo pero lo modifique para que descienda por que originalmente era un cronometro asendente mi problema es esl siguiente
que el cronometro empiesa a marchar en forma normal digamos esta en 1:36:00 y se me ocurre refrescar la pagina, entonces en ese momento cuando refresca se queda en 1:36:00 pero cuando le pongo iniciar nuevamente se pone otra ves desde 2:00:00 lo que quisiera que me ayuden es que quiero que siga desde el punto en que se quedo antes de ser refrescado osea que si estubo en 1:36:00 y la pagina fue refrescada quiero que siga descendiendo pero desde ese lugar osea que continue el descenso y no se reinicie y comiense nuevamente desde 2:00:00 si no que siga 1:35:00
ojala puedan ayudarme porfavor
osw saludos
Kev:
Hola osw2
Bueno solo es agregar una 2 funciones sencillas.
--- Código: Text --- <html><head><title>Untitled</title><script language="javascript">//CRONOMETRO//Autor: Iván Nieto Pérez//Este script y otros muchos los puedes//encontrar en//MundoJavascript.comvar CronoID = nullvar CronoEjecutandose = falsevar decimas, segundos, minutosdecimas = 1segundos = 1minutos = 2 function verify(){ if(document.crono.display.value != "00:00:0") { cadTemp = document.crono.display.value; vector = cadTemp.split(":"); decimas = parseInt(vector[2]); segundos = parseInt(vector[1]); minutos = parseInt(vector[0]); } else { decimas = 1; segundos = 1; minutos = 2; }} function DetenerCrono (){ if(CronoEjecutandose) clearTimeout(CronoID) CronoEjecutandose = false} function InicializarCrono () { //inicializa contadores globales decimas = decimas; segundos = segundos; minutos = minutos; //pone a cero los marcadores document.crono.display.value = '00:00:0'; document.crono.parcial.value = '00:00:0';} function MostrarCrono () { //incrementa el crono decimas-- if ( decimas == 0 ) { decimas = 9 segundos-- if ( segundos == 00 ) { segundos = 60 minutos-- if ( minutos == 00 ) { alert('Fin de la cuenta') DetenerCrono() return true } } } //configura la salida var ValorCrono = "" ValorCrono = (minutos < 10) ? "0" + minutos : minutos ValorCrono += (segundos < 10) ? ":0" + segundos : ":" + segundos ValorCrono += ":" + decimas document.crono.display.value = ValorCrono CronoID = setTimeout("MostrarCrono()", 100) CronoEjecutandose = true return true} function IniciarCrono() { DetenerCrono() InicializarCrono() MostrarCrono()} function ObtenerParcial() { //obtiene cuenta parcial document.crono.parcial.value = document.crono.display.value} function PoneraCero(){ decimas = 1; segundos = 1; minutos = 2;}</script></head> <body onload="verify();"><form name="crono"> <div align="center"><center> <p> <input type="text" size="8" name="display" value="00:00:0"> <input type="button" name="Iniciar" value=" Iniciar " onClick="IniciarCrono()"> </p> <p> <input type="text" size="8" name="parcial" value="00:00:0 "> <input type="button" name="Parcial" value="Parcial" onClick="ObtenerParcial()"> </p> <p> <input type="button" name="Parar" value=" Parar " onClick="DetenerCrono()"> <input type="button" name="Cero" value=" Cero " onClick="DetenerCrono(); InicializarCrono(); PoneraCero();"> </p> </center> </div></form> </body></html>
Acostumbrate siempre a sangrar el código, asi si se entiende, es solo una sugerencia.
:comp: :hola:
Salu2
Untouchable:
Muy buena la respuesta, basados en el mismo cronometro, habria forma de que cuando se resfresca la pagina o cuando se va a otra pagina el cronometro continue corriendo hacia atras en el mismo tiempo en el que se cambio o refresco la pagina?
Navegación
Ir a la versión completa