<?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>TiloWR &#187; JavaScript</title>
	<atom:link href="http://tilowr.com.br/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://tilowr.com.br</link>
	<description>Especialista em HTML</description>
	<lastBuildDate>Wed, 15 Jun 2011 18:19:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Pinch zoom com javascript (ongesturechange e style.zoom)</title>
		<link>http://tilowr.com.br/pinch-zoom-com-javascript-ongesturechange-e-style-zoom/</link>
		<comments>http://tilowr.com.br/pinch-zoom-com-javascript-ongesturechange-e-style-zoom/#comments</comments>
		<pubDate>Fri, 04 Feb 2011 10:22:10 +0000</pubDate>
		<dc:creator>Tilo</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[ongesturechange]]></category>
		<category><![CDATA[Pinch zoom]]></category>

		<guid isPermaLink="false">http://tilowr.com.br/?p=1265</guid>
		<description><![CDATA[O Zoom com pinça é um recurso nativo do iphone porem você precisa capturar esse evento no javascript para poder manipular objetos específicos dentro do safari, hoje vou ensinar como capturar esse evento e como fazer o “scale” de um objeto com &#8230; <a href="http://tilowr.com.br/pinch-zoom-com-javascript-ongesturechange-e-style-zoom/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>O Zoom com pinça é um recurso nativo do iphone porem você precisa capturar esse evento no javascript para poder manipular objetos específicos dentro do safari, hoje vou ensinar como capturar esse evento e como fazer o “scale” de um objeto com javascript.</p>
<p>Vamos utilizar o mesmo HTML e CSS do post anterior, o de “Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone”, vou colocar o HTML e o CSS aqui para facilitar a sua compreensão.</p>
<p><strong>HTML:</strong></p>
<pre name="code" class="html">
&lt;!DOCTYPE HTML&gt;
&lt;html lang="pt-BR"&gt;
&lt;head&gt;
&lt;meta charset="UTF-8"&gt;
&lt;title&gt;Touch Events&lt;/title&gt;
&lt;link rel="stylesheet" href="gestos.css" media="all" /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id="item"&gt;&lt;/div&gt;
&lt;script type="text/javascript" src="gestos.js"&gt;&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><strong>CSS:</strong></p>
<pre name="code" class="css">
#item {
width: 100px;
height: 100px;
position: absolute;
border: 1px solid black;
}
</pre>
<p>e vamos ao javascipt, primeiro declaramos o objeto:</p>
<pre name="code" class="javascript">
var obj = document.getElementById('item');
</pre>
<p>e depois atribuímos o evento a ele:</p>
<pre name="code" class="javascript">
obj.ongesturechange = function(){ escala(event); };
</pre>
<p>crie a função escala:</p>
<pre name="code" class="javascript">
function escala(e){
}
</pre>
<p>O evento ongesturechange possui um atributo scale, esses valores são representados da seguinte forma, 1 é o tamanho natural do objeto 0.1 é 10% do tamanho, dessa forma sabemos que 2 é o dobro do tamanho e asism sucessivamente. </p>
<p>Vamos utilizar o valor do scale, e atribui-lo ao Zoom.</p>
<pre name="code" class="javascript">
function escala(e){
obj.style.zoom = e.scale;
}
</pre>
<p>E para finalizar colocamos e.preventDefault(); return false; para evitar a área de seleção indesejada</p>
<pre name="code" class="javascript">
function escala(e){
obj.style.zoom = e.scale;

e.preventDefault();
return false;
}
</pre>
<p>no final seu javascript estará assim:</p>
<pre name="code" class="javascript">
var obj = document.getElementById('item');
obj.ongesturechange = function(){ escala(event); };

function escala(e){
obj.style.zoom = e.scale;

e.preventDefault();
return false;
}
</pre>
<p>pronto, simples né, bem se esse post te ajudou não esquece de deixar um comentário.</p>
<h4  class="related_post_title">Leia Também:</h4><ul class="related_post"><li><a href="http://tilowr.com.br/css-personalizado-para-mudanca-de-orientacao-no-iphone-e-ipad/" title="CSS Personalizado para mudança de orientação no iPhone e iPad">CSS Personalizado para mudança de orientação no iPhone e iPad</a></li><li><a href="http://tilowr.com.br/detectar-mudanca-de-orientacao-no-iphone-e-ipad-com-javascript/" title="Detectar mudança de orientação no iPhone e iPad com JavaScript">Detectar mudança de orientação no iPhone e iPad com JavaScript</a></li><li><a href="http://tilowr.com.br/manipulando-a-area-de-selecao-do-usuario-com-css-para-iphone-e-ipad/" title="Manipulando a área de seleção do usuário com CSS para iPhone e iPad">Manipulando a área de seleção do usuário com CSS para iPhone e iPad</a></li><li><a href="http://tilowr.com.br/fullscreen-no-ipad/" title="FullScreen no iPad">FullScreen no iPad</a></li><li><a href="http://tilowr.com.br/habilitando-debug-console-no-ipad-vale-pro-iphone-tambem/" title="Habilitando Debug Console no iPad (Vale pro iPhone Tambem)">Habilitando Debug Console no iPad (Vale pro iPhone Tambem)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tilowr.com.br/pinch-zoom-com-javascript-ongesturechange-e-style-zoom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone</title>
		<link>http://tilowr.com.br/movendo-objetos-com-ontouchstart-e-ontouchmove-para-ipadiphone/</link>
		<comments>http://tilowr.com.br/movendo-objetos-com-ontouchstart-e-ontouchmove-para-ipadiphone/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 16:23:29 +0000</pubDate>
		<dc:creator>Tilo</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ontouchmove]]></category>
		<category><![CDATA[ontouchstart]]></category>

		<guid isPermaLink="false">http://tilowr.com.br/?p=1256</guid>
		<description><![CDATA[Nesse Post a ideia é explicar como você pode mover itens utilizando os eventos ontouchstart e ontouchmove para iphone e ipad. No HTML crie uma div. &#60;!DOCTYPE HTML&#62; &#60;html lang="pt-BR"&#62; &#60;head&#62; &#60;meta charset="UTF-8"&#62; &#60;title&#62;Touch Events&#60;/title&#62; &#60;link rel="stylesheet" href="touchEvents.css" media="all" /&#62; &#8230; <a href="http://tilowr.com.br/movendo-objetos-com-ontouchstart-e-ontouchmove-para-ipadiphone/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nesse Post a ideia é explicar como você pode mover itens utilizando os eventos  ontouchstart e ontouchmove para iphone e ipad.</p>
<p>No HTML crie uma div.</p>
<pre name="code" class="html">
&lt;!DOCTYPE HTML&gt;
&lt;html lang="pt-BR"&gt;
&lt;head&gt;
&lt;meta charset="UTF-8"&gt;
&lt;title&gt;Touch Events&lt;/title&gt;
&lt;link rel="stylesheet" href="touchEvents.css" media="all" /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id="item"&gt;&lt;/div&gt;
&lt;script type="text/javascript" src="touchEvents.js"&gt;&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>No CSS coloque uma aparência para identificar onde ela está na tela, eu apenas coloquei uma borda preta.</p>
<pre name="code" class="css">
#item {
width: 100px;
height: 100px;
position: absolute;
margin-left: -50px;
margin-top: -50px;
border: 1px solid black;
}
</pre>
<p>E no Javascript é que acontece a brincadeira, primeiro identifique o item que será movido pela tela:</p>
<pre name="code" class="javascript">
var obj = document.getElementById('item');
</pre>
<p>atribua a ele os eventos:</p>
<pre name="code" class="javascript">
obj.ontouchmove = function(){ moveObj(event); };
obj.ontouchstart = function(){ moveObj(event); };
</pre>
<p>Crie a função que vai disparar o evento:</p>
<pre name="code" class="javascript">function moveObj(e) {
}
</pre>
<p>Identifique o toque que vai registrar o evento:</p>
<pre name="code" class="javascript">function moveObj(e) {
target = e.touches.item(0);
}
</pre>
<p>Nesse caso 0 é o primeiro dedo, se no parâmetro for passado 1 por exemplo, será o segundo dedo a tocar o objeto que será armazenado como o target.</p>
<p>Atribua valores ao Left e Top da div com os valores do eixo Client</p>
<pre name="code" class="javascript">function moveObj(e) {
target = e.touches.item(0);
obj.style.left = target.clientX + "px";
obj.style.top = target.clientY + "px";
}
</pre>
<p>não se esqueça de concatenar o “px”</p>
<p>O seu objeto já deve estar andando pela tela, porem, como existe um tempo de contato com a tela o objeto ficará sendo selecionado, para desabilitar isso adicione e.preventDefault(); return false;</p>
<pre name="code" class="javascript">
function moveObj(e) {
target = e.touches.item(0);
obj.style.left = target.clientX + "px";
obj.style.top = target.clientY + "px";
e.preventDefault();
return false;
}
</pre>
<p>É importante lembrar que esse Javascript está manipulando objetos da tela, sendo assim ele tem que ser executado apenas depois que tudo for renderizado, você pode adicionar ele ao “Ready” se você usa jQuery, ou apenas colocar no fim da pagina como eu fiz no exemplo.</p>
<p>No final o seu Javascript deve estar com essa aparência:</p>
<pre name="code" class="javascript">
var obj = document.getElementById('item');

obj.style.left = target.clientX + "px";
obj.style.top = target.clientY + "px";

function moveObj(e) {
target = e.touches.item(0);
obj.style.left = target.clientX + "px";
obj.style.top = target.clientY + "px";
e.preventDefault();
return false;
}
</pre>
<p>não testei no android, testa ai e me diz nos comments se funfou, abraços!</p>
<h4  class="related_post_title">Leia Também:</h4><ul class="related_post"><li><a href="http://tilowr.com.br/pinch-zoom-com-javascript-ongesturechange-e-style-zoom/" title="Pinch zoom com javascript (ongesturechange e style.zoom)">Pinch zoom com javascript (ongesturechange e style.zoom)</a></li><li><a href="http://tilowr.com.br/verificar-status-do-navegador-com-html5-window-navigator-online/" title="Verificar Status do navegador com HTML5 (window.navigator.onLine)">Verificar Status do navegador com HTML5 (window.navigator.onLine)</a></li><li><a href="http://tilowr.com.br/usando-seletores-avancados-no-ie6-%e2%80%93-javascript-css/" title="Usando Seletores Avançados no IE6 – JavaScript + CSS">Usando Seletores Avançados no IE6 – JavaScript + CSS</a></li><li><a href="http://tilowr.com.br/html-5-em-qualquer-navegador-com-javascript/" title="HTML 5 em qualquer navegador com JavaScript">HTML 5 em qualquer navegador com JavaScript</a></li><li><a href="http://tilowr.com.br/expressoes-aritmeticas-com-javascript/" title="Expressões aritméticas com JavaScript">Expressões aritméticas com JavaScript</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tilowr.com.br/movendo-objetos-com-ontouchstart-e-ontouchmove-para-ipadiphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Verificar Status do navegador com HTML5 (window.navigator.onLine)</title>
		<link>http://tilowr.com.br/verificar-status-do-navegador-com-html5-window-navigator-online/</link>
		<comments>http://tilowr.com.br/verificar-status-do-navegador-com-html5-window-navigator-online/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 10:50:32 +0000</pubDate>
		<dc:creator>Tilo</dc:creator>
				<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[window.navigator.onLine]]></category>

		<guid isPermaLink="false">http://tilowr.com.br/?p=1234</guid>
		<description><![CDATA[O Código é muito simples e pode ser usado em varias aplicações. Se o navegador está offline registra em cookies ou no banco de dados do próprio navegador informações para quando ele ficar online, essas informações possam ser enviadas a &#8230; <a href="http://tilowr.com.br/verificar-status-do-navegador-com-html5-window-navigator-online/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>O Código é muito simples e pode ser usado em varias aplicações.</p>
<p>Se o navegador está offline registra em cookies ou no banco de dados do próprio navegador informações para quando ele ficar online, essas informações possam ser enviadas a uma base externa.</p>
<p>É fundamental para o Desenvolvedor HTML (Programador HTML / HTMLerr / Designer de Interface / Como chamam onde você trabalha?) que quer trabalhar com HTML5 saber Javascript</p>
<p>Os navegadores com suporte à HTML5 possuem um atributo que é navigator.onLine, esse atributo retorna True ou False, no exemplo vou utilizar um SPAN com o id status e escreverei dentro dele o status do navegador,</p>
<p>o HTML fica assim:</p>
<pre name="code" class="html">
&lt;span id='status'&gt;&lt;/span&gt;
</pre>
<p>e o Javascript assim:</p>
<pre name="code" class="javascript">
function verificaStatus() {
if(window.navigator.onLine){
status = "online";
} else {
status = "offline";
}
statusBox = document.getElementById('status');
statusBox.className = status;
statusBox.innerHTML = status;
}
</pre>
<p>lembre-se de disparar a função verificaStatus de acordo com a sua necessidade, se for no load dá página basta colocar a função no body.onload, case seja no decorrer do uso da página, coloque um setInterval() para verificação em loop.</p>
<h4  class="related_post_title">Leia Também:</h4><ul class="related_post"><li><a href="http://tilowr.com.br/converter-milissegundos-do-tempo-de-video-html-5-em-minutos-com-javascript/" title="Converter milissegundos do tempo de video HTML 5 em minutos com javascript">Converter milissegundos do tempo de video HTML 5 em minutos com javascript</a></li><li><a href="http://tilowr.com.br/pinch-zoom-com-javascript-ongesturechange-e-style-zoom/" title="Pinch zoom com javascript (ongesturechange e style.zoom)">Pinch zoom com javascript (ongesturechange e style.zoom)</a></li><li><a href="http://tilowr.com.br/movendo-objetos-com-ontouchstart-e-ontouchmove-para-ipadiphone/" title="Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone">Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone</a></li><li><a href="http://tilowr.com.br/google-developer-day-brasil-2010/" title="Google Developer Day Brasil 2010">Google Developer Day Brasil 2010</a></li><li><a href="http://tilowr.com.br/casa-construcao/" title="Casa &#038; Construção">Casa &#038; Construção</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tilowr.com.br/verificar-status-do-navegador-com-html5-window-navigator-online/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Usando Seletores Avançados no IE6 – JavaScript + CSS</title>
		<link>http://tilowr.com.br/usando-seletores-avancados-no-ie6-%e2%80%93-javascript-css/</link>
		<comments>http://tilowr.com.br/usando-seletores-avancados-no-ie6-%e2%80%93-javascript-css/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 16:06:35 +0000</pubDate>
		<dc:creator>Tilo</dc:creator>
				<category><![CDATA[JavaScript, jQuery & Ajax]]></category>
		<category><![CDATA[XHTML & CSS]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[css 3]]></category>
		<category><![CDATA[FrontEnd]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.tilowr.com.br/?p=791</guid>
		<description><![CDATA[Hoje foi a prova final desse javascript, já estamos usando ele há algum tempo aqui na agência e ele vem tendo um ótimo desempenho, chegou a um ponto que meu IE6 lê seletores que o IE8 não lê, você poderá &#8230; <a href="http://tilowr.com.br/usando-seletores-avancados-no-ie6-%e2%80%93-javascript-css/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.tilowr.com.br/wp-content/uploads/2010/03/css3-last-07-300x187.jpg" alt="css3" title="css3" width="300" height="187" class="aligncenter size-medium wp-image-792" /></p>
<p>Hoje foi a prova final desse javascript, já estamos usando ele há algum tempo aqui na agência e ele vem tendo um ótimo desempenho, chegou a um ponto que meu IE6 lê seletores que o IE8 não lê, você poderá usar coisas como:<span id="more-791"></span></p>
<table border=1>
<caption>
    Seletores Avançados<br />
  </caption>
<thead>
<tr>
<th scope="col">Selector type</th>
<th scope="col">Pattern</th>
<th scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Seletor para sub string de atributo</td>
<td>E[att^="val"]</td>
<td>Casa com qualquer elemento  E cujo valor do atributo att começa com &#8220;val&#8221;.</td>
</tr>
<tr>
<td>Seletor para sub string de atributo</td>
<td>E[att$="val"]</td>
<td>Casa com qualquer elemento  E cujo valor do atributo att termina com &#8220;val&#8221;.</td>
</tr>
<tr>
<td>Seletor para sub string de atributo</td>
<td>E[att*="val"]</td>
<td>Casa com qualquer elemento  E cujo valor do atributo att contenha a sub string &#8220;val&#8221;.</td>
</tr>
<tr>
<td>Pseudo classe estrutural </td>
<td>E:root</td>
<td>Casa com o elemento raiz do documento. Em <abbr title="HyperText Markup Language">HTML</abbr> o elemento raiz é sempre o elemento <abbr>HTML</abbr>.</td>
</tr>
<tr>
<td>Pseudo classe estrutural</td>
<td>E:nth-child(n)</td>
<td>Casa com qualquer elemento E que seja o n-th (enésimo) filho do elemento pai.</td>
</tr>
<tr>
<td>Pseudo classe estrutural</td>
<td>E:nth-last-child(n)</td>
<td>Casa com qualquer elemento E que que seja o n-th (enésimo) filho do elemento pai, a contar do último filho.</td>
</tr>
<tr>
<td>Pseudo classe estrutural</td>
<td>E:nth-of-type(n)</td>
<td>Casa com qualquer elemento E que seja o n-th (enésimo) elemento irmão do seu tipo.</td>
</tr>
<tr>
<td>Pseudo classe estrutural</td>
<td>E:nth-last-of-type(n)</td>
<td>Casa com qualquer elemento E que seja o n-th (enésimo) elemento irmão do seu tipo, a contar do último filho</td>
</tr>
<tr>
<td>Pseudo classe estrutural</td>
<td>E:last-child</td>
<td>Casa com qualquer elemento E que seja o último filho do elemento pai.</td>
</tr>
<tr>
<td>Pseudo classe estrutural</td>
<td>E:first-of-type</td>
<td>Casa com qualquer elemento E que seja o primeiro elemento irmão do seu tipo.</td>
</tr>
<tr>
<td>Pseudo classe estrutural</td>
<td>E:last-of-type</td>
<td>Casa com qualquer elemento E que seja o último elemento irmão do seu tipo.</td>
</tr>
<tr>
<td>Pseudo classe estrutural</td>
<td>E:only-child</td>
<td>Casa com qualquer elemento E que seja o único filho do elemento pai.</td>
</tr>
<tr>
<td>Pseudo classe estrutural</td>
<td>E:only-of-type</td>
<td>Casa com qualquer elemento E que seja o único elemento irmão do seu tipo.</td>
</tr>
<tr>
<td>Pseudo classe estrutural</td>
<td>E:empty</td>
<td>Casa com qualquer elemento E que não tenha filhos (incluindo os nós de texto).</td>
</tr>
<tr>
<td>Pseudo classe :target </td>
<td>E:target</td>
<td>Casa com um elemento E que seja o destino da <abbr title="Uniform Resource Locator">URL</abbr>.</td>
</tr>
<tr>
<td>Pseudo classe estado de <abbr title="User Interface">elemento de UI</abbr></td>
<td>E:enabled</td>
<td>Casa com qualquer elemento E de interface de usuário  (um controle de formulário)  e que esteja habilitado (enabled).</td>
</tr>
<tr>
<td>Pseudo classe estado de elemento de UI<abbr></abbr></td>
<td>E:disabled</td>
<td>Casa com qualquer elemento E de interface de usuário  (um controle de formulário) que esteja desabilitado (disabled).</td>
</tr>
<tr>
<td>Pseudo classe estado de <abbr>elemento de UI</abbr></td>
<td>E:checked</td>
<td>Casa com qualquer elemento E de interface de usuário  (um controle de formulário) que esteja marcado (checked).</td>
</tr>
<tr>
<td>Pseudo-elemento fragmentos de <abbr>elemento de UI</abbr></td>
<td>E::selection</td>
<td>Casa com a parte de qualquer elemento E que tenha sido selecionado ou destacado pelo usuário.</td>
</tr>
<tr>
<td>Pseudo classe negação </td>
<td>E:not(s)</td>
<td>Casa com qualquer elemento E que não case com o seletor simples  s.</td>
</tr>
<tr>
<td>Elemento de combinação irmão em geral</td>
<td>E ~ F</td>
<td>Casa com qualquer elemento F que seja precedido pelo elemento E.</td>
</tr>
</tbody>
</table>
<p><a href='http://www.tilowr.com.br/wp-content/uploads/2010/03/IE8.js'>Baixe o arquivo aqui!</a></p>
<p>para que funcione corretamente, limite no html que apenas os IE&#8217;s abaixo do 8 leiam esse arquivo com o seguinte código:</p>
<pre name='code' class='html'>
<!--[if lt IE 8]>
        <script type="text/javascript" src="js/IE8.js"></script>
    <![endif]-->
</pre>
<h4  class="related_post_title">Leia Também:</h4><ul class="related_post"><li><a href="http://tilowr.com.br/html-5-em-qualquer-navegador-com-javascript/" title="HTML 5 em qualquer navegador com JavaScript">HTML 5 em qualquer navegador com JavaScript</a></li><li><a href="http://tilowr.com.br/css-reset-%e2%80%93-iguale-todos-os-navegadores-com-css/" title="CSS Reset – iguale todos os navegadores com css">CSS Reset – iguale todos os navegadores com css</a></li><li><a href="http://tilowr.com.br/hack-para-safari-4-firefox-3-5-chrome-3-e-muito-mais-com-um-js/" title="Hack para Safari 4, Firefox 3.5, Chrome 3 e muito mais com um JS">Hack para Safari 4, Firefox 3.5, Chrome 3 e muito mais com um JS</a></li><li><a href="http://tilowr.com.br/troca-de-classe-com-javascript/" title="Troca de Classe com JavaScript">Troca de Classe com JavaScript</a></li><li><a href="http://tilowr.com.br/css-personalizado-para-mudanca-de-orientacao-no-iphone-e-ipad/" title="CSS Personalizado para mudança de orientação no iPhone e iPad">CSS Personalizado para mudança de orientação no iPhone e iPad</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tilowr.com.br/usando-seletores-avancados-no-ie6-%e2%80%93-javascript-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML 5 em qualquer navegador com JavaScript</title>
		<link>http://tilowr.com.br/html-5-em-qualquer-navegador-com-javascript/</link>
		<comments>http://tilowr.com.br/html-5-em-qualquer-navegador-com-javascript/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 15:48:03 +0000</pubDate>
		<dc:creator>Tilo</dc:creator>
				<category><![CDATA[JavaScript, jQuery & Ajax]]></category>
		<category><![CDATA[XHTML & CSS]]></category>
		<category><![CDATA[FrontEnd]]></category>
		<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Navegadores]]></category>

		<guid isPermaLink="false">http://www.tilowr.com.br/?p=788</guid>
		<description><![CDATA[Não podemos deixar passar cada oportunidade de usar o HTML 5, por isso aqui vai uma dica de fazer as tags de HTML 5 funcionarem nos Internet Explorers por exemplo, já usei em alguns projetos e funcionou perfeitamente. Baixe aqui &#8230; <a href="http://tilowr.com.br/html-5-em-qualquer-navegador-com-javascript/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.tilowr.com.br/wp-content/uploads/2010/03/html5-wallpaper-300x190.jpg" alt="" title="html5-wallpaper" width="300" height="190" class="aligncenter size-medium wp-image-786" /></p>
<p>Não podemos deixar passar cada oportunidade de usar o HTML 5, por isso aqui vai uma dica de fazer as tags de HTML 5 funcionarem nos Internet Explorers por exemplo, já usei em alguns projetos e funcionou perfeitamente.<span id="more-788"></span></p>
<p><a href='http://www.tilowr.com.br/wp-content/uploads/2010/03/html5.js'>Baixe aqui o HTML5.JS</a></p>
<p>Seguem dois exemplos de estrutura com HTML 5</p>
<p><a target="_blank" href="http://www.tilowr.com.br/wp-content/uploads/2010/03/html5_structure1.png" rel="lightbox[788]" title="html5_structure1"><img src="http://www.tilowr.com.br/wp-content/uploads/2010/03/html5_structure1-300x221.png" alt="" title="html5_structure1" width="300" height="221" class="aligncenter size-medium wp-image-787" /></a></p>
<p><a target="_blank" href="http://www.tilowr.com.br/wp-content/uploads/2010/03/structure-html5.gif" rel="lightbox[788]" title="structure-html5"><img src="http://www.tilowr.com.br/wp-content/uploads/2010/03/structure-html5-300x150.gif" alt="structure-html5" title="structure-html5" width="300" height="150" class="aligncenter size-medium wp-image-785" /></a></p>
<h4  class="related_post_title">Leia Também:</h4><ul class="related_post"><li><a href="http://tilowr.com.br/usando-seletores-avancados-no-ie6-%e2%80%93-javascript-css/" title="Usando Seletores Avançados no IE6 – JavaScript + CSS">Usando Seletores Avançados no IE6 – JavaScript + CSS</a></li><li><a href="http://tilowr.com.br/input-text-placeholder/" title="Input Text Placeholder">Input Text Placeholder</a></li><li><a href="http://tilowr.com.br/pinch-zoom-com-javascript-ongesturechange-e-style-zoom/" title="Pinch zoom com javascript (ongesturechange e style.zoom)">Pinch zoom com javascript (ongesturechange e style.zoom)</a></li><li><a href="http://tilowr.com.br/movendo-objetos-com-ontouchstart-e-ontouchmove-para-ipadiphone/" title="Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone">Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone</a></li><li><a href="http://tilowr.com.br/verificar-status-do-navegador-com-html5-window-navigator-online/" title="Verificar Status do navegador com HTML5 (window.navigator.onLine)">Verificar Status do navegador com HTML5 (window.navigator.onLine)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tilowr.com.br/html-5-em-qualquer-navegador-com-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expressões aritméticas com JavaScript</title>
		<link>http://tilowr.com.br/expressoes-aritmeticas-com-javascript/</link>
		<comments>http://tilowr.com.br/expressoes-aritmeticas-com-javascript/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 19:16:44 +0000</pubDate>
		<dc:creator>Tilo</dc:creator>
				<category><![CDATA[JavaScript, jQuery & Ajax]]></category>
		<category><![CDATA[Expressões Aritiméticas]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.tilowr.com.br/?p=685</guid>
		<description><![CDATA[Saber expressões aritméticas é fundamento para desenvolvimento de animações em javascript, desde movimentações de ponto a ponto à coisas complexas com seqüências aleatórias. Operadores matemáticos: “+” O operador de adição. Vale lembrar que o + também é usado para concatenar &#8230; <a href="http://tilowr.com.br/expressoes-aritmeticas-com-javascript/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Saber expressões aritméticas é fundamento para desenvolvimento de animações em javascript, desde movimentações de ponto a ponto à coisas complexas com seqüências aleatórias.</p>
<p><strong>Operadores matemáticos:</strong></p>
<p>“+” O operador de adição. Vale lembrar que o + também é usado para concatenar strings.</p>
<p>“-” O operador de subtração.</p>
<p>“*” O operador de multiplicação. (O nome do caracter é asterisco, não asteristico!)</p>
<p>“/” O operador de divisão.</p>
<p>“%” O operador de módulo. Com o módulo podemos obter o resto de uma divisão.</p>
<p>“++” Pré ou pós-incremento. Utilizado para incrementar uma variável em uma unidade.<br />
“&#8211;“ Pré ou pós-decremento. Utilizado para decrementar uma variável em uma unidade.<br />
<span id="more-685"></span><br />
<strong>Declarando números</strong></p>
<p>Declarar números é realmente muito simples:<br />
Declarando números inteiros</p>
<pre name="code" class="javascript">
var numero = 10;
numero = 007; // apenas 7 pra todos os efeitos
numero = -5; // sim, temos números negativos!
</pre>
<p>O único detalhe que posso ressaltar aqui é sobre a declaração de números decimais. No nosso padrão de numeração, o separador decimal é a vírgula &#8220;,&#8221;, porém o Javascript adota o sistema inglês, que usa o ponto &#8220;.&#8221; como separador decimal.</p>
<p><strong>Declarando números decimais</strong></p>
<pre name="code" class="javascript">
var numero = 7.339;
numero = 0.56;
numero = .56 // o mesmo efeito da declaração acima
</pre>
<p>Talvez você ache um insulto a sua inteligência mas, vou deixar aqui claro que você não deve usar separadores de milhar nos números, ou seja, 1256 é apenas 1256, não 1.256, nem 1,256. =) #FIKADIKA</p>
<p>Se você colocar uma vírgula no número, o interpretador Javascript apenas vai ignorar tudo o que estiver após ela, além dela própria.</p>
<p><strong>Adição</strong></p>
<p>A famosa &#8220;continha de mais&#8221;. Não há muitos segredos em usar a adição, assim como na vida real. Veja um exemplo:</p>
<pre name="code" class="javascript">
var numero1 = 10;
var numero2 = 15;
alert( numero1 + numero2 );
</pre>
<p>O único cuidado que você deve ter é que, o sinal de adição &#8220;+&#8221; também é usado para concatenar strings, lembra-se? A ordem com que as operações são processadas é da esquerda para a direita (supondo apenas adições neste exemplo). Se o interpretador Javascript encontrar uma string, ele começará a concatenar tudo o que encontrar, ao invés de somar. Acompanhe alguns exemplos:</p>
<pre name="code" class="javascript">
var numero1 = 13;
var numero2 = 6;
alert( numero1 + numero2 + " é um número legal!" );
</pre>
<p>Para entender o que aconteceu acima, vamos ler a expressão como o interpretador Javascript a entendeu. Partindo da esquerda, ele encontrou um número na variável numero1 e outro número na variável numero2. Como eram dois números e o sinal de mais entre eles, uma adição foi feita resultando num número: 19. Na sequência, ele encontrou uma string &#8221; é um número legal!&#8221; que deveria se juntar ao número anteriormente obtido (19). Como a operação seria entre um número e uma string, o interpretador fez uma concatenação, ao invés de uma soma.</p>
<p>Não entendeu toda a teoria acima? Um exemplo pode ajudá-lo:</p>
<pre name="code" class="javascript">
var numero1 = 13;
var numero2 = 71;
alert( "Um número legal: " + numero1 + numero2 );
</pre>
<p>Notou que a soma dos números não ocorreu? Isso aconteceu pois as operações, neste caso, partiram da esquerda conforme: uma string com um número, houve uma concatenação e a saída foi uma string. A string de saída da operação anterior com o outro número, mais uma vez uma string com um número, outra concatenação.</p>
<p>Isto significa que sempre que o interpretador encontrar uma string e um número e, tiver de decidir entre somar ou concatenar, ele sempre fará a concatenação, mesmo que a string esteja na forma de um número, exemplo: &#8220;15&#8243;.</p>
<p>É possível explicitar ao interpretador para fazer a soma dos números antes de tentar as outras operações. Assim como na matemática, basta usarmos os parênteses em volta da expressão. Os parênteses instruirão o interpretador a fazer aquela operação antes das demais. Isso se chama precedência.</p>
<p>Agora que muito já foi dito sobre a adição, explicar e entender as outras três operações básicas, será fácil! =)</p>
<p><strong>Subtração</strong></p>
<p>&#8220;Continha de menos&#8221; para os mais íntimos. Bastante simples e direto:<br />
Exemplos de subtração</p>
<pre name="code" class="javascript">
var numero1 = 15;
var numero2 = 10;
alert( numero1 - numero2 ); // 5
alert( 10 - 15 ); // -5, o resultado pode ser negativo
alert( 3.53 - 2 ); // 1.5299999999999998 (discussão abaixo)
</pre>
<p>A terceira opção deu um resultado no mínimo curioso, certo? Naturalmente aquela subtração teria como resultado 1.53 mas, como você pode ver, isso não acontece. A solução para isso é arredondar o número para um número de casas decimais aceitável ou desejado. </p>
<p>O sinal de subtração é usado também para criar números negativos. Sendo assim, podemos ter uma operação do tipo:<br />
O sinal de subtração para números negativos</p>
<pre name="code" class="javascript">
alert( 10 - -5 ); // 15
</pre>
<p>Como eu tenho certeza que você se lembra, quando fazemos a subtração de um número negativo, na verdade faremos uma soma. Isso é o que ocorre no exemplo acima. Lembra-se? &#8220;Menos com menos dá mais!&#8221; =)</p>
<p><strong>Multiplicação</strong></p>
<p>Quando aprendemos a multiplicação na escola, usamos para ela um destes dois operadores: o ponto &#8220;.&#8221; e o xis &#8220;x&#8221;. Em programação, não usamos nem um, nem outro. O operador de multiplicação aqui é o asterisco &#8220;*&#8221; (e como já dito antes, não asteristico!).</p>
<p>A multiplicação é muito simples e, alguns exemplos o ajudarão a relembrar tudo o que você precisa saber:<br />
Exemplos de multiplicação</p>
<pre name="code" class="javascript">
var numero1 = 7;
var numero2 = 3;
alert( numero1 * numero2 ); // 21
alert( numero2 * numero1 ); // sim! "A ordem dos fatores não altera o produto." =)
alert( 7 * -3 ); // -21, o resultado pode ser negativo
alert( -7 * -3 ); // 21, "menos com menos dá mais!"
</pre>
<p><strong>Divisão</strong></p>
<p>Para aqueles que não apreciam muito a matemática, a divisão é certamente a operação mais odiada! Talvez por ser, dentre as 4 operações básicas, a mais complicada de se calcular mental ou manualmente. Mas veja agora com outros olhos! Você está trabalhando com um computador, é ele quem fará os cálculos para você! =)</p>
<p>Se você tem uma vaga lembrança da sua professora primária lhe ensinando a divisão, deve lembrar-se que existem divisões com resto. Aqui, o operador de divisão faz os cálculos para obter o quociente mais exato possível, sempre com resto zero. É exatamente igual o que uma calculadora faz. Nós podemos obter o resto de uma divisão também, mas isso é feito com o próximo operador que veremos, o módulo. Por ora, vejamos alguns exemplos de divisão:<br />
Exemplos de divisão</p>
<pre name="code" class="javascript">
var numero1 = 20;
var numero2 = 5;
alert( numero1 / numero2 ); // 4
alert( numero2 / numero1 ); // 0.25, a ordem na divisão é importante
alert( -20 / 5 ); // -4
alert( -20 / -5 ); // 4
alert( 22 / 4 ); // 5.5
</pre>
<p>Da lista de exemplos acima, note o último exemplo: 22 dividido por 4. Como você deve saber mentalmente, 22 não é múltiplo de 4, logo esta divisão não será exata. E foi justamente isso o que aconteceu.</p>
<p>Se pegarmos o múltiplo de 4 mais próximo de 22, que seja menor que o próprio 22, obteremos o 20. 22 menos 20 dá 2, que seria o resto de nossa divisão. Porém, os cálculos não param por aí. O interpretador fará também a divisão do resto 2 por 4, que mentalmente podemos chegar em: meio. Por isso o resultado da divisão é 5.5.</p>
<p><strong>Módulo</strong></p>
<p>O módulo não é um operador que conhecemos na escola, muito embora já saibamos como calculá-lo. O módulo é usado para obter o resto de uma divisão:<br />
Exemplos com o operador de módulo</p>
<pre name="code" class="javascript">
var numero1 = 20;
var numero2 = 6;
alert( numero1 % numero2 ); // 2
alert( 17 % 2 ); // 1
alert( 16 % 4 ); // 0
</pre>
<p>O módulo poderá ser qualquer número menor que o divisor, inclusive zero.</p>
<p>As utilidades do módulo são muitas, dividir uma listagem de itens em duas, três, quatro, n colunas&#8230; Verificar se cada linha de uma tabela é par ou ímpar e colocar cores diferentes a cada uma delas (conhecido como &#8220;zebrar uma tabela&#8221;) e assim vai&#8230;</p>
<p><strong>Precedência</strong></p>
<p>Dicionário. Vamos ver o quanto você se lembra de uma das regrinhas básicas do ensino fundamental. Olhando para o código abaixo, qual seria o valor armazenado na variável resultado?<br />
Precedência?</p>
<pre name="code" class="javascript">
var resultado = 7 + 3 * 2;
</pre>
<blockquote><p>20? 13? 9999? =) A resposta certa é 13. Caso você saiba o motivo, ótimo! Caso não consiga se lembrar, recomendo continuar a leitura deste tópico.</p></blockquote>
<p>Na matemática, a multiplicação e a divisão têm precedência sobre a adição e a subtração, ou seja, têm prioridade, devem ser feitas primeiro! Por isso o resultado é 13! Primeiro fazemos a multiplicação 3 vezes 2, que dá 6 para daí somar com 7, resultando no 13.</p>
<p>Caso você esteja se perguntando sobre o módulo, o módulo é uma divisão, logo tem a mesma precedência da divisão.</p>
<p>E quando os operadores têm a mesma precedência, quem eu devo fazer antes? Neste caso, faça as operações normalmente, da esquerda para a direita. Exemplos? Claro!</p>
<pre name="code" class="javascript">
var resultado = 6 / 3 * 2;
alert( resultado );
</pre>
<p>E se alterarmos um pouco a ordem? Colocando a multiplicação antes da divisão:</p>
<pre name="code" class="javascript">
var resultado = 2 * 3 / 6;
alert( resultado );
</pre>
<p><strong>Definindo a precedência</strong></p>
<p>Lembra-se do nosso exemplo com adição e multiplicação, onde eu disse que a multiplicação sempre é feita antes da adição? Haverá casos em que você realmente deseja que a soma seja feita antes. Para esses casos, os parênteses irão ajudar você a definir a precedência como desejar. Acompanhe:</p>
<pre name="code" class="javascript">
var resultado = 7 + 3 * 2;
alert( resultado ); // 13
// com os parênteses, forçando a precedência da adição:
var resultado = ( 7 + 3 ) * 2;
alert( resultado ); // 20
</pre>
<p>O primeiro exemplo eu já havia mostrado. Note no segundo exemplo que adicionamos os parênteses em torno da adição, isto indica que ela deve ser feita primeiro!</p>
<p>Na matemática primária, aprendemos a usar parênteses &#8220;()&#8221;, colchetes &#8220;[]&#8221; e chaves &#8220;{}&#8221; para expressar vários níveis de precedência. Em programação, usamos apenas parênteses. Desta forma, você pode definir todas as precedências que precisar, sempre com parênteses.<br />
Pré-incremento/decremento e pós-incremento/decremento</p>
<p>Muitas vezes precisamos fazer um contador qualquer, onde vamos aumentando ou diminuindo um valor qualquer até outro valor qualquer, explícito ou não. Nesses casos, onde incrementamos ou decrementamos o valor de uma variável, é que podemos usar os operadores de pré ou pós incremento/decremento.</p>
<p>Entender esses operadores é fácil, quando incrementamos o valor de uma variável, o incremento é de uma unidade. Quando decrementamos, também é uma unidade. A diferença é apenas entre pré ou pós. Veja a sequência de exemplos para entender melhor:</p>
<pre name="code" class="javascript">
var x = 3;
x++;
alert( x ); // 4

x = 3;
++x;
alert( x ); // 4
</pre>
<p>No exemplo acima, as operações de incremento apareceram destacadas. Na primeira metade do exemplo, eu usei o pré-incremento. Vamos entender o que houve ali:</p>
<p>Na primeira linha eu declarei que a variável x vale 3. Na sequência eu fiz um pós-incremento nela. Por fim, exibe seu valor: 4. Vamos entender agora a segunda parte:</p>
<p>Logo após a primeira metade, eu redeclarei a variável x com o valor 3. Fiz um pré-incremento e exibi o valor da variável na sequência: 4, também.</p>
<p>Nenhuma diferença? Neste caso não. Mas veja um exemplo aonde atribuiremos o valor (pré ou pós-incrementado) a uma nova variável.</p>
<pre name="code" class="javascript">
var x = 3;
var y = x++; // atribuindo com pós-incremento
alert( y ); // 3

x = 3;
y = ++x; // atribuindo com pré-incremento
alert( y ); // 4
</pre>
<p>Agora sim temos a diferença! Na primeira metade, quando fazemos a atribuição com pós-incremento, o interpretador primeiro faz a atribuição e após isso faz o incremento (agora o pós-incremento faz sentido? =). Na segunda metade, primeiro se faz o incremento e depois a atribuição, o que justifica o nome pré-incremento!</p>
<p>Por fim, vale lembrar que apesar de eu ter usado apenas os operadores de incremento nos exemplos, tudo o que foi dito também vale para os operadores de decremento. Veja o último exemplo, reescrito usando os operadores de decremento:</p>
<pre name="code" class="javascript">
var x = 3;
var y = x--; // atribuindo com pós-decremento
alert( y ); // 3

x = 3;
y = --x; // atribuindo com pré-decremento
alert( y ); // 2
</pre>
<p>Esse Texto é Originalmente de um site que não consegui acessar, mas de qualquer forma fica aqui a Referencia: www.aprendajs.klaus.pro.br/operacoes-matematicas.html</p>
<h4  class="related_post_title">Leia Também:</h4><ul class="related_post"><li><a href="http://tilowr.com.br/pinch-zoom-com-javascript-ongesturechange-e-style-zoom/" title="Pinch zoom com javascript (ongesturechange e style.zoom)">Pinch zoom com javascript (ongesturechange e style.zoom)</a></li><li><a href="http://tilowr.com.br/movendo-objetos-com-ontouchstart-e-ontouchmove-para-ipadiphone/" title="Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone">Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone</a></li><li><a href="http://tilowr.com.br/verificar-status-do-navegador-com-html5-window-navigator-online/" title="Verificar Status do navegador com HTML5 (window.navigator.onLine)">Verificar Status do navegador com HTML5 (window.navigator.onLine)</a></li><li><a href="http://tilowr.com.br/usando-seletores-avancados-no-ie6-%e2%80%93-javascript-css/" title="Usando Seletores Avançados no IE6 – JavaScript + CSS">Usando Seletores Avançados no IE6 – JavaScript + CSS</a></li><li><a href="http://tilowr.com.br/html-5-em-qualquer-navegador-com-javascript/" title="HTML 5 em qualquer navegador com JavaScript">HTML 5 em qualquer navegador com JavaScript</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tilowr.com.br/expressoes-aritmeticas-com-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adicione funções ao onLoad</title>
		<link>http://tilowr.com.br/adicione-funcoes-ao-onload/</link>
		<comments>http://tilowr.com.br/adicione-funcoes-ao-onload/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 16:00:25 +0000</pubDate>
		<dc:creator>Tilo</dc:creator>
				<category><![CDATA[JavaScript, jQuery & Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[onLoad]]></category>

		<guid isPermaLink="false">http://www.tilowr.com.br/?p=476</guid>
		<description><![CDATA[Quando montamos várias funções que usam o onLoad do BODY para serem executadas, ocasionalmente acontece de uma função sobrescrever a outra, interrompendo a execução, ou executando de forma incompleta. Depois de muito “bater cabeça” pegamos ajuda com Adilson, um amigo &#8230; <a href="http://tilowr.com.br/adicione-funcoes-ao-onload/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Quando montamos várias funções que usam o onLoad do BODY para serem executadas, ocasionalmente acontece de uma função sobrescrever a outra, interrompendo a execução, ou executando de forma incompleta.</p>
<p>Depois de muito “bater cabeça” pegamos ajuda com Adilson, um amigo aqui da agência, e em menos de cinco minutos ele resolveu nosso problema com esse script:<br />
<span id="more-476"></span></p>
<pre name="code" class="javascript">
<script type=”text/javascript”>
function AddOnLoad(novaFn){
if (!window.loadFunctions){
window.loadFunctions = [];
if (window.onload) window.loadFunctions.push(window.onload);
window.onload = function(){
for (var i=0; i<window.loadfunctions.lenght; i++)
window.loadfunctions[i].apply(window, []);
}
}
window.loadfunctions.push(novafn);
}
</script>
</pre>
<p>Nas páginas onde você quiser adicionar eventos ao onLoad adicione um script da seguinte forma:</p>
<pre name="code" class="javascript">
<script type=”text/javascript”>
	AddOnLoad(
		function(){
			funcao1(parametro);
			funcao2(parametro);
		}
	);
</script>
</pre>
<p>Caso sua função não tenha parâmetro você pode até usar um atalho:</p>
<pre name="code" class="javascript">
<script type=”text/javascript”>
	AddOnLoad(funcao);
</script>
</pre>
<p>Entendendo o Código:</p>
<p>Verifica se a array com as funções que serão executadas no onLoad já está criada</p>
<pre name="code" class="javascript">
if (!window.loadFunctions){
</pre>
<p>Criar uma array com as funções que serão executadas no onload</p>
<pre name="code" class="javascript">
window.loadFunctions = [];
</pre>
<p>Caso já exista uma função onload definida, adiciona-a no array</p>
<pre name="code" class="javascript">
if (window.onload) window.loadFunctions.push(window.onload);
</pre>
<h4  class="related_post_title">Leia Também:</h4><ul class="related_post"><li><a href="http://tilowr.com.br/pinch-zoom-com-javascript-ongesturechange-e-style-zoom/" title="Pinch zoom com javascript (ongesturechange e style.zoom)">Pinch zoom com javascript (ongesturechange e style.zoom)</a></li><li><a href="http://tilowr.com.br/movendo-objetos-com-ontouchstart-e-ontouchmove-para-ipadiphone/" title="Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone">Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone</a></li><li><a href="http://tilowr.com.br/verificar-status-do-navegador-com-html5-window-navigator-online/" title="Verificar Status do navegador com HTML5 (window.navigator.onLine)">Verificar Status do navegador com HTML5 (window.navigator.onLine)</a></li><li><a href="http://tilowr.com.br/usando-seletores-avancados-no-ie6-%e2%80%93-javascript-css/" title="Usando Seletores Avançados no IE6 – JavaScript + CSS">Usando Seletores Avançados no IE6 – JavaScript + CSS</a></li><li><a href="http://tilowr.com.br/html-5-em-qualquer-navegador-com-javascript/" title="HTML 5 em qualquer navegador com JavaScript">HTML 5 em qualquer navegador com JavaScript</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tilowr.com.br/adicione-funcoes-ao-onload/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retornando largura com clientWidth (Javascript).</title>
		<link>http://tilowr.com.br/retornando-largura-com-clientwidth-javascript/</link>
		<comments>http://tilowr.com.br/retornando-largura-com-clientwidth-javascript/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 13:42:53 +0000</pubDate>
		<dc:creator>Tilo</dc:creator>
				<category><![CDATA[JavaScript, jQuery & Ajax]]></category>
		<category><![CDATA[Carrossel]]></category>
		<category><![CDATA[clientWidth]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.tilowr.com.br/?p=473</guid>
		<description><![CDATA[Um tempo atrás montei um carrossel que trazia um desafio bem legal, precisava de um tamanho fixo para funcionar, porém, eu não sabia quantos itens teriam dentro de cada carrossel. No começo foi meio complicado, mas cheguei a uma solução &#8230; <a href="http://tilowr.com.br/retornando-largura-com-clientwidth-javascript/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Um tempo atrás montei um carrossel que trazia um desafio bem legal, precisava de um tamanho fixo para funcionar, porém, eu não sabia quantos itens teriam dentro de cada carrossel. </p>
<p>No começo foi meio complicado, mas cheguei a uma solução bem simples com javascript usando a propriedade clientWidth.</p>
<p>No exemplo tínhamos um numero x de LI e a UL deveria ter um tamanho fixo para o carrossel funcionar, o tamanho de LI é fixo, a idéia é:</p>
<p>Retornar o numero de LI dentro da UL, multiplicar a quantidade de LI pelo tamanho de UL, simples não é?<br />
<span id="more-473"></span></p>
<pre name="code" class="javascript">
function AtivaCarrossel(id)
{
	var cr = document.getElementById(id);
	window['carrossel_'+id] = cr;
	cr.lis = cr.getElementsByTagName("li");
	cr.tamanhoUl = cr.lis[0].clientWidth * cr.lis.length;
	cr.ul.style.width = cr.tamanhoUl + "px";
}
</pre>
<p><strong>Entendendo:</strong></p>
<p>Pego o carrossel que vamos usar:</p>
<pre name="code" class="javascript">
var cr = document.getElementById(id);
</pre>
<p>Crio uma variável pra ele:</p>
<pre name="code" class="javascript">
window['carrossel_'+id] = cr;
</pre>
<p>Monto um Array com as LI dentro dele:</p>
<pre name="code" class="javascript">
cr.lis = cr.getElementsByTagName("li");
</pre>
<p>Uso a largura da primeira LI e multiplico pela quantidade de itens dentro do array:</p>
<pre name="code" class="javascript">
cr.tamanhoUl = cr.lis[0].clientWidth * cr.lis.length;
</pre>
<p>E finalmente aplicamos com um estilo em linha a largura no carrossel:</p>
<pre name="code" class="javascript">
cr.ul.style.width = cr.tamanhoUl + "px";
</pre>
<p><strong>IMPORTANTE: </strong>a propriedade clientWidth não retorna margem ou borda, apenas a largura &#8220;liquida&#8221;!</p>
<h4  class="related_post_title">Leia Também:</h4><ul class="related_post"><li><a href="http://tilowr.com.br/pinch-zoom-com-javascript-ongesturechange-e-style-zoom/" title="Pinch zoom com javascript (ongesturechange e style.zoom)">Pinch zoom com javascript (ongesturechange e style.zoom)</a></li><li><a href="http://tilowr.com.br/movendo-objetos-com-ontouchstart-e-ontouchmove-para-ipadiphone/" title="Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone">Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone</a></li><li><a href="http://tilowr.com.br/verificar-status-do-navegador-com-html5-window-navigator-online/" title="Verificar Status do navegador com HTML5 (window.navigator.onLine)">Verificar Status do navegador com HTML5 (window.navigator.onLine)</a></li><li><a href="http://tilowr.com.br/usando-seletores-avancados-no-ie6-%e2%80%93-javascript-css/" title="Usando Seletores Avançados no IE6 – JavaScript + CSS">Usando Seletores Avançados no IE6 – JavaScript + CSS</a></li><li><a href="http://tilowr.com.br/html-5-em-qualquer-navegador-com-javascript/" title="HTML 5 em qualquer navegador com JavaScript">HTML 5 em qualquer navegador com JavaScript</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tilowr.com.br/retornando-largura-com-clientwidth-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Input Text Placeholder</title>
		<link>http://tilowr.com.br/input-text-placeholder/</link>
		<comments>http://tilowr.com.br/input-text-placeholder/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 13:01:22 +0000</pubDate>
		<dc:creator>Tilo</dc:creator>
				<category><![CDATA[XHTML & CSS]]></category>
		<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[Input Text]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Placeholder]]></category>

		<guid isPermaLink="false">http://www.tilowr.com.br/?p=459</guid>
		<description><![CDATA[Bem, o HTML 5 é uma realidade e está ai batendo em nossas portas, dessa forma é bom começar a conhecer o que tem de bom na web sobre o assunto, recomendo dar uma lida no Pinceladas da Web. A &#8230; <a href="http://tilowr.com.br/input-text-placeholder/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Bem, o HTML 5 é uma realidade e está ai batendo em nossas portas, dessa forma é bom começar a conhecer o que tem de bom na web sobre o assunto, recomendo dar uma lida no <a href="http://www.pinceladasdaweb.com.br/blog/" target="_blank">Pinceladas da Web</a>.</p>
<p>A idéia é evitar o uso de javascript desnecessário, por exemplo, quem nunca teve que montar um script apenas para fazer o texto do input sumir quando ele for selecionado? No blog <a href="http://www.casosdecasa.com.br/" target="_blank">Casos de Casa da SulAmérica</a> tem um exemplo funcionando, confira o código:</p>
<pre name="code" class="html">
<input id="txt_busca" class="txt_busca" type="text" name="busca" value="" onkeyup="LigaTextBox();" onchange="LigaTextBox();"/>
</pre>
<p><span id="more-459"></span></p>
<pre name="code" class="javascript">
<script language='javascript' type="text/javascript"> 
function LigaTextBox() 
{ 
if(document.getElementById('txt_busca').value.length > 0 ) 
document.getElementById('txt_busca').className = 'txt_busca_on'; 
else 
document.getElementById('txt_busca') 
} 
</script>
</pre>
<blockquote><p>No exemplo acima a troca é feita por uma imagem com a Palavra Busca nela, o mesmo efeito pode ser feito de várias formas.</p></blockquote>
<p>Para obter o mesmo efeito com HTML 5 é muito mais simples, acompanhe:</p>
<pre name="code" class="html">
<input type=”text” placeholder=”Busca” />
</pre>
<p>O próprio HTML 5 já tem um atributo placeholder, porém ele só funciona em webkit, atualmente disponível no Safari e Chrome.</p>
<h4  class="related_post_title">Leia Também:</h4><ul class="related_post"><li><a href="http://tilowr.com.br/html-5-em-qualquer-navegador-com-javascript/" title="HTML 5 em qualquer navegador com JavaScript">HTML 5 em qualquer navegador com JavaScript</a></li><li><a href="http://tilowr.com.br/pinch-zoom-com-javascript-ongesturechange-e-style-zoom/" title="Pinch zoom com javascript (ongesturechange e style.zoom)">Pinch zoom com javascript (ongesturechange e style.zoom)</a></li><li><a href="http://tilowr.com.br/movendo-objetos-com-ontouchstart-e-ontouchmove-para-ipadiphone/" title="Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone">Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone</a></li><li><a href="http://tilowr.com.br/verificar-status-do-navegador-com-html5-window-navigator-online/" title="Verificar Status do navegador com HTML5 (window.navigator.onLine)">Verificar Status do navegador com HTML5 (window.navigator.onLine)</a></li><li><a href="http://tilowr.com.br/w3c-lanca-logomarca-do-html-5/" title="W3C lança logomarca do HTML 5">W3C lança logomarca do HTML 5</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tilowr.com.br/input-text-placeholder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Operador Ternário (JavaScript)</title>
		<link>http://tilowr.com.br/operador-ternario-javascript/</link>
		<comments>http://tilowr.com.br/operador-ternario-javascript/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 20:53:21 +0000</pubDate>
		<dc:creator>Tilo</dc:creator>
				<category><![CDATA[JavaScript, jQuery & Ajax]]></category>
		<category><![CDATA[IF.. Else]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Ternário]]></category>

		<guid isPermaLink="false">http://www.tilowr.com.br/?p=448</guid>
		<description><![CDATA[Seis meses atrás fiz um post sobre como fazer troca de classes com JavaScript, mas algumas pessoas não entenderam como funciona o Ternário, por isso resolvi escrever este post. Considero o ternário extremamente útil quando vamos montar um “if&#8230; else” &#8230; <a href="http://tilowr.com.br/operador-ternario-javascript/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Seis meses atrás fiz um post sobre <a href="http://www.tilowr.com.br/troca-de-classe-com-javascript" target="_blank">como fazer troca de classes com JavaScript</a>, mas algumas pessoas não entenderam como funciona o Ternário, por isso resolvi escrever este post. </p>
<p>Considero o ternário extremamente útil quando vamos montar um “if&#8230; else” para apenas 2 casos, ao invés de construir uma estrutura de algumas linhas você pode resolver com apenas uma linha de javaScript, vamos ver um exemplo: </p>
<p><strong>Usando IF&#8230;Else</strong> </p>
<pre name="code" class="javascript">
<script type=”text/javascript”> 
if (x == 20) { 
y = 50; 
} 
Else {
y = 70; 
} 
</script>
</pre>
<p><strong>Usando Ternário</strong> </p>
<pre name="code" class="javascript">
<script type=”text/javascript”> 
y = (x == 20) ? 50 : 70; 
</script>
</pre>
<p>Podemos ler da seguinte forma: x é igual a 20? Se for, y recebe 50, se não, recebe 70. </p>
<p>Este operador tambem é muito útil para efeitos de menu, imagine o seguinte efeito, uma div tem classe “off”, no clique ela recebe classe “on”, no proximo clique precisa voltar para “off” caso esteja ativada, isso ficaria mais ou menos assim: </p>
<pre name="code" class="html">
<div class=”off” onClick=”trocaClasse(this);”>Item</div>
</pre>
<pre name="code" class="javascript">
<script type=”text/javascript”> 
function trocaClasse(item) { 
item.className = (item.className == “off”) ? “on” : “off”; 
} 
</script>
</pre>
<h4  class="related_post_title">Leia Também:</h4><ul class="related_post"><li><a href="http://tilowr.com.br/pinch-zoom-com-javascript-ongesturechange-e-style-zoom/" title="Pinch zoom com javascript (ongesturechange e style.zoom)">Pinch zoom com javascript (ongesturechange e style.zoom)</a></li><li><a href="http://tilowr.com.br/movendo-objetos-com-ontouchstart-e-ontouchmove-para-ipadiphone/" title="Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone">Movendo objetos com ontouchstart e ontouchmove para iPad/iPhone</a></li><li><a href="http://tilowr.com.br/verificar-status-do-navegador-com-html5-window-navigator-online/" title="Verificar Status do navegador com HTML5 (window.navigator.onLine)">Verificar Status do navegador com HTML5 (window.navigator.onLine)</a></li><li><a href="http://tilowr.com.br/usando-seletores-avancados-no-ie6-%e2%80%93-javascript-css/" title="Usando Seletores Avançados no IE6 – JavaScript + CSS">Usando Seletores Avançados no IE6 – JavaScript + CSS</a></li><li><a href="http://tilowr.com.br/html-5-em-qualquer-navegador-com-javascript/" title="HTML 5 em qualquer navegador com JavaScript">HTML 5 em qualquer navegador com JavaScript</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tilowr.com.br/operador-ternario-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

