<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GUJS - Grupo de Usuários Javascript &#187; Tutoriais Intermediários</title>
	<atom:link href="http://gujs.com.br/blog/categoria/tutoriais-intermediarios/feed/" rel="self" type="application/rss+xml" />
	<link>http://gujs.com.br/blog</link>
	<description>O Maior Site Javascript do Brasil</description>
	<lastBuildDate>Tue, 27 Oct 2009 14:12:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Contagem regressiva</title>
		<link>http://gujs.com.br/blog/2007/04/contagem-regressiva/</link>
		<comments>http://gujs.com.br/blog/2007/04/contagem-regressiva/#comments</comments>
		<pubDate>Thu, 19 Apr 2007 00:02:43 +0000</pubDate>
		<dc:creator>Matheus Zeuch</dc:creator>
				<category><![CDATA[Cross-browser]]></category>
		<category><![CDATA[Downloads e Exemplos]]></category>
		<category><![CDATA[Tutoriais Intermediários]]></category>

		<guid isPermaLink="false">http://gujs.com.br/blog/2007/04/contagem-regressiva/</guid>
		<description><![CDATA[Hoje vamos aprender a fazer um contador regressivo simples para uma data e hora futura. Nosso contador deve mostrar o resultado em um formato texto, numa tag span, para que seu estilo possa ser configurado. O resultado é interessante.
O código abaixo é a parte principal do nosso contador. Observe que utilizei variáveis para setar qual [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje vamos aprender a fazer um contador regressivo simples para uma data e hora futura. Nosso contador deve mostrar o resultado em um formato texto, numa tag span, para que seu estilo possa ser configurado. O resultado é interessante.<span id="more-18"></span></p>
<p>O código abaixo é a parte principal do nosso contador. Observe que utilizei variáveis para setar qual a data e hora futura. A vantagem disso é que essas variáveis podem ser atualizadas por uma outra função javascript, fazendo com que o nosso contador possa ser atualizado em tempo real (veremos isso em funcionamento no exemplo prático).</p>
<pre class="prettyprint">
var YY = 2007;
var MM = 12;
var DD = 31;
var HH = 23;
var MI = 59;
var SS = 59; 

function atualizaContador() {
  var hoje = new Date();
  var futuro = new Date(YY,MM-1,DD,HH,MI,SS); 

  var ss = parseInt((futuro - hoje) / 1000);
  var mm = parseInt(ss / 60);
  var hh = parseInt(mm / 60);
  var dd = parseInt(hh / 24); 

  ss = ss - (mm * 60);
  mm = mm - (hh * 60);
  hh = hh - (dd * 24); 

  var faltam = '';
  faltam += (dd &amp;&amp; dd &gt; 1) ? dd+' dias, ' : (dd==1 ? '1 dia, ' : '');
  faltam += (toString(hh).length) ? hh+' hr, ' : '';
  faltam += (toString(mm).length) ? mm+' min e ' : '';
  faltam += ss+' seg'; 

  if (dd+hh+mm+ss &gt; 0) {
    document.getElementById('contador').innerHTML = faltam;
    setTimeout(atualizaContador,1000);
  } else {
    document.getElementById('contador').innerHTML = 'CHEGOU!!!!';
    setTimeout(atualizaContador,1000);
  }
}</pre>
<p>A função <code>atualizaContador()</code> foi escrita de maneira que possa ser alterada facilmente. Você pode, por exemplo, alterar o código para que retorne o contador em vez de exibí-lo.</p>
<p>Abaixo está o código html que utilizei para demonstrar o funcionamento. Fiz com que o evento <code>onchange</code> dos campos atualizem as variáveis da data futura.</p>
<pre class="prettyprint">
&lt;body onload="atualizaContador()"&gt;
&lt;input size="1" onchange="DD=this.value" style="text-align: center" /&gt; /
&lt;input size="1" onchange="MM=this.value" style="text-align: center" /&gt; /
&lt;input size="4" onchange="YY=this.value" style="text-align: center" /&gt; às
&lt;input size="1" onchange="HH=this.value" style="text-align: center" /&gt; :
&lt;input size="1" onchange="MI=this.value" style="text-align: center" /&gt; :
&lt;input size="1" onchange="SS=this.value" style="text-align: center" /&gt;
&lt;br /&gt;
Faltam &lt;span id="contador"&gt;&lt;/span&gt;
&lt;/body&gt;</pre>
<p>Você pode ver um exemplo em funcionamento deste código aqui. Ou se preferir, pode baixar o código para estudar melhor.</p>
<p><a href="http://gujs.com.br/demo/contagem-regressiva"><strong>Exemplo</strong></a> | <a href="http://gujs.com.br/blog/wp-content/uploads/2007/04/contagem-regressiva.zip"><strong>Download</strong></a></p>
<p>Até a próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://gujs.com.br/blog/2007/04/contagem-regressiva/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.247 seconds -->
<!-- Cached page served by WP-Cache -->
