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 --- &#60;html&#62;&#60;head&#62;&#60;title&#62;Untitled&#60;/title&#62;&#60;script language=&#34;javascript&#34;&#62;//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 != &#34;00:00:0&#34;)  {    cadTemp = document.crono.display.value;    vector = cadTemp.split(&#34;:&#34;);    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 = &#34;&#34;  ValorCrono = (minutos &#60; 10) ? &#34;0&#34; + minutos : minutos  ValorCrono += (segundos &#60; 10) ? &#34;:0&#34; + segundos : &#34;:&#34; + segundos  ValorCrono += &#34;:&#34; + decimas    document.crono.display.value = ValorCrono   CronoID = setTimeout(&#34;MostrarCrono()&#34;, 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;}&#60;/script&#62;&#60;/head&#62; &#60;body onload=&#34;verify();&#34;&#62;&#60;form name=&#34;crono&#34;&#62;  &#60;div align=&#34;center&#34;&#62;&#60;center&#62;    &#60;p&#62;      &#60;input type=&#34;text&#34; size=&#34;8&#34; name=&#34;display&#34; value=&#34;00:00:0&#34;&#62;      &#60;input type=&#34;button&#34; name=&#34;Iniciar&#34; value=&#34; Iniciar &#34; onClick=&#34;IniciarCrono()&#34;&#62;    &#60;/p&#62;    &#60;p&#62;    &#60;input type=&#34;text&#34; size=&#34;8&#34; name=&#34;parcial&#34; value=&#34;00:00:0 &#34;&#62;     &#60;input type=&#34;button&#34; name=&#34;Parcial&#34; value=&#34;Parcial&#34; onClick=&#34;ObtenerParcial()&#34;&#62;    &#60;/p&#62;    &#60;p&#62;    &#60;input type=&#34;button&#34; name=&#34;Parar&#34; value=&#34; Parar &#34; onClick=&#34;DetenerCrono()&#34;&#62;     &#60;input type=&#34;button&#34; name=&#34;Cero&#34; value=&#34; Cero &#34; onClick=&#34;DetenerCrono(); InicializarCrono(); PoneraCero();&#34;&#62;    &#60;/p&#62;  &#60;/center&#62;  &#60;/div&#62;&#60;/form&#62; &#60;/body&#62;&#60;/html&#62;  
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

[0] Índice de Mensajes

Ir a la versión completa