<?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>IvoGomes.com &#187; Javascript</title>
	<atom:link href="http://www.ivogomes.com/blog/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ivogomes.com</link>
	<description>ergonomia e sistemas de informação</description>
	<lastBuildDate>Tue, 31 Jan 2012 00:01:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>SAPO Sessions #2 &#8211; Javascript</title>
		<link>http://www.ivogomes.com/blog/sapo-sessions-2-javascript/</link>
		<comments>http://www.ivogomes.com/blog/sapo-sessions-2-javascript/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 15:56:01 +0000</pubDate>
		<dc:creator>Ivo Gomes</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.ivogomes.com/?p=769</guid>
		<description><![CDATA[Na sequência da<a href="http://www.ivogomes.com/blog/sapo-sessions/"> primeira SAPO Sessions dedicada a HTML, CSS e Acessibilidade</a>, hoje decorreu a segunda edição, desta vez dedicada ao JavaScript.

Hoje tivémos o prazer de assistir às seguintes apresentações:
<ul>
<li>Javascript for Beginners, por Pedro Eugénio</li>
<li>JavaScript done right, por ANdré Luís</li>
<li>Prototype &#038; LibSAPO.js, por Cláudio Gamboa</li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Na sequência da <a href="http://www.ivogomes.com/blog/sapo-sessions/">primeira SAPO Sessions dedicada a <acronym title="Em Ingl&ecirc;s: HyperText Markup Language">HTML</acronym>, <acronym title="Em Ingl&ecirc;s: Cascading Style Sheets">CSS</acronym> e Acessibilidade</a>, hoje decorreu a segunda edição, desta vez dedicada ao JavaScript.</p>
<p>Hoje tivémos o prazer de assistir às seguintes apresentações:</p>
<ul>
<li>Javascript for Beginners, por Pedro Eugénio</li>
<li>JavaScript done right, por André Luís</li>
<li>Prototype &#038; LibSAPO.js, por Cláudio Gamboa</li>
</ul>
<p>Ao contrário da primeira edição, a partir de agora estas sessões passaram a estar abertas ao público, gratuitamente, mas com lugares limitados. Para mais informações sobre as próximas sessões e como se podem inscrever, fiquem atentos ao <a href="http://developers.blogs.sapo.pt/">Blog Developers</a> do SAPO.</p>
<p>Tal como na primeira edição, as apresentações e os vídeos das mesmas vão ser disponibilizados online (actualmente ainda não estão disponíveis os vídeos de todas as apresentações da primeira sessão, mas vão sendo publicados ao ritmo de um por semana, todas as quintas-feiras).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivogomes.com/blog/sapo-sessions-2-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>myTVShows 3: As Novidades</title>
		<link>http://www.ivogomes.com/blog/mytvshows-3-as-novidades/</link>
		<comments>http://www.ivogomes.com/blog/mytvshows-3-as-novidades/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 14:58:40 +0000</pubDate>
		<dc:creator>Ivo Gomes</dc:creator>
				<category><![CDATA[CSS & Webstandards]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Pessoal]]></category>
		<category><![CDATA[Projectos]]></category>
		<category><![CDATA[Usabilidade]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[gestão]]></category>
		<category><![CDATA[mytvshows]]></category>
		<category><![CDATA[séries]]></category>
		<category><![CDATA[tv]]></category>

		<guid isPermaLink="false">http://www.ivogomes.com/?p=475</guid>
		<description><![CDATA[<a href="http://www.mytvshows.org"><img class="imgartigo alignnone size-full wp-image-476" title="myTVShows" src="http://www.ivogomes.com/wordpress/wp-content/uploads/2008/06/mytvshows.png" alt="" width="200" height="100" /></a>Após alguns meses de desenvolvimento da nova versão do <a title="myTVShows" href="http://www.mytvshows.org">myTVShows</a>, chegou a hora de a disponibilizar publicamente. Esta versão já tinha sido divulgada mas apenas para alguns utilizadores, de modo a poder ter algum feedback sobre as novidades, bugs, novas funcionalidades, etc...

Esta nova versão ainda está longe de ser finalizada. Ainda há algumas funcionalidades em processo de desenvovimento, outras ainda só no papel. Uma vez que foram introduzidas muitas novas funcionalidades, é possível que ainda hajam alguns bugs (apesar de termos feito muitos testes durante a fase em que a aplicação esteve disponível apenas a um conjunto restrito de pessoas).]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mytvshows.org"><img class="imgartigo alignnone size-full wp-image-476" title="myTVShows" src="http://www.ivogomes.com/wordpress/wp-content/uploads/2008/06/mytvshows.png" alt="" width="200" height="100" /></a>Após alguns meses de desenvolvimento da nova versão do <a title="myTVShows" href="http://www.mytvshows.org">myTVShows</a>, chegou a hora de a disponibilizar publicamente. Esta versão já tinha sido divulgada mas apenas para alguns utilizadores, de modo a poder ter algum feedback sobre as novidades, bugs, novas funcionalidades, etc&#8230;</p>
<p>Esta nova versão ainda está longe de ser finalizada. Ainda há algumas funcionalidades em processo de desenvovimento, outras ainda só no papel. Uma vez que foram introduzidas muitas novas funcionalidades, é possível que ainda hajam alguns bugs (apesar de termos feito muitos testes durante a fase em que a aplicação esteve disponível apenas a um conjunto restrito de pessoas).</p>
<h2>As Novidades</h2>
<p>Uma das novidades principais é a mudança completa do layout da aplicação. A versão anterior tinha sido inspirada no iTunes e nesta nova versão decidi criar um layout próprio tentando aproveitar o que o layout anterior tinha de melhor.</p>
<p>Quanto às funcionalidades, durante estes últimos meses tenho recebido alguns pedidos e nesta nova versão já consegui aplicar a maior parte deles:</p>
<h3>Adicionar mais do que uma temporada de cada vez</h3>
<p><img class="imgartigo alignnone size-full wp-image-477" title="Adicionar Temporada" src="http://www.ivogomes.com/wordpress/wp-content/uploads/2008/06/picture-2.png" alt="" width="258" height="130" />Um dos pedidos mais frequentes era o de poder adicionar mais do que uma temporada de cada vez. A partir de agora é possível adicionar quantas temporadas quisermos, desde que sejam separadas por uma vírgula. Ex: 1, 2, 3.</p>
<p>Infelizmente ainda não é possíve adicionar &#8220;todas&#8221; as temporadas disponíveis para uma determinada série, mas vou continuar a trabalhar para que essa funcionalidade seja implementada.</p>
<h3>Não ter que enviar uma imagem para a série</h3>
<p><img class="imgartigo alignnone size-full wp-image-478" title="Imagem de Capa" src="http://www.ivogomes.com/wordpress/wp-content/uploads/2008/06/picture-3.png" alt="" width="226" height="198" />Outro dos pedidos mais frequentes estava relacionado com o envio de uma imagem de capa para cada série que era adicionada. Muitos utilizadores pediram para que a aplicação automaticamente adicionasse uma imagem correspondente à série.</p>
<p>Na nova versão, o <a title="myTVShows" href="http://www.mytvshows.org">myTVShows</a> automaticamente adiciona as imagens às séries com base nas imagens enviadas pelos outros utilizadores. Assim que uma série é adicionada, é-lhe atribuída uma das imagens já existentes e o utilizador tem a possibilidade de escolher uma nova imagem (ou enviar a sua) sempre que quiser editar a sére.</p>
<p><img class="img alignnone size-full wp-image-482" title="Editar imagem de capa" src="http://www.ivogomes.com/wordpress/wp-content/uploads/2008/06/picture-8.png" alt="" width="500" height="495" /></p>
<h3>Pesquisa de novos episódios</h3>
<p>No final da lista de episódios de cada temporada passou a haver uma opção para procurar a existência de novos episódios. Isto permite estar sempre a par das novidades da série e dos novos episódios que vão sendo transmitidos. Esta pesquisa é feita com base na data de transmissão original dos episódios nos E.U.A.</p>
<p><img class="img alignnone size-full wp-image-479" title="Pesquisa de Novos Episódios" src="http://www.ivogomes.com/wordpress/wp-content/uploads/2008/06/picture-4.png" alt="" width="500" height="250" /></p>
<p>Em breve vou tentar implementar uma secção que permita verificar a existência de novidades (novas temporadas/episódios) para todas as séries que temos.</p>
<h3>Link para download dos episódios</h3>
<p><img class="imgartigo alignnone size-full wp-image-480" title="Pesquisa de Torrents" src="http://www.ivogomes.com/wordpress/wp-content/uploads/2008/06/picture-5.png" alt="" width="352" height="209" />Esta foi sem dúvida a funcionalidade mais pedida e também a mais controversa de implementar. O objectivo principal do <a title="myTVShows" href="http://www.mytvshows.org">myTVShows</a> é o de gerir as séries que vamos acompanhando e não o download das mesmas da Internet, mas finalmente cedi aos vários pedidos e coloquei uma secção com links para sites externos que permitem efectuar o download dos episódios via <a href="http://pt.wikipedia.org/wiki/BitTorrent">BitTorrent</a>. Convém salientar que a disponibilização de links para sites externos não é ilegal e que no <a title="myTVShows" href="http://www.mytvshows.org">myTVShows</a> não é feito o alojamento de qualquer tipo de ficheiros deste tipo.</p>
<h3>Identificação do número de episódios não vistos</h3>
<p><img class="imgartigo alignnone size-full wp-image-481" title="Lista de Séries" src="http://www.ivogomes.com/wordpress/wp-content/uploads/2008/06/picture-6.png" alt="" width="162" height="145" />Na barra lateral, para cada série temos a informação do número total de episódios que nos falta ver para cada uma.</p>
<p>Desta forma é fácil saber em qualquer altura quais as séries em que temos episódios não vistos sem ter que entrar na página da serie.</p>
<h2>Outras Novidades</h2>
<p>Para além das novidades visíveis, foram feitas também alterações a quase todo o código da aplicação para a tornar mais rápida e menos pesada. Dessa forma, todas as imagens foram combinadas numa só (usando o método <a href="http://css-tricks.com/css-sprites-what-they-are-why-theyre-cool-and-how-to-use-them/"><acronym title="Em Ingl&ecirc;s: Cascading Style Sheets">CSS</acronym> Sprites</a>) o que permite que o carregamento seja feito de forma muito mais rápida e de uma só vez. Este métdo teve no entanto algumas consequências para os utilizadores do Internet Explorer 6 (que não suporta imagens <acronym title="Em Ingl&ecirc;s: Portable Network Graphics">PNG</acronym> transparentes) e como tal, oficialmente o <a title="myTVShows" href="http://www.mytvshows.org">myTVShows</a> não é suportado em versões do <acronym title="Microsoft Internet Explorer">IE</acronym> 6 ou inferiores (não só por causa das imagens, mas também porque esta versão do <acronym title="Microsoft Internet Explorer">IE</acronym> também não suporta alguns selectores de <acronym title="Em Ingl&ecirc;s: Cascading Style Sheets">CSS</acronym> como por exemplo o <code>:hover</code>).</p>
<p>Em relação ao <acronym title="Em Ingl&ecirc;s: Cascading Style Sheets">CSS</acronym> ainda não está tudo terminado. Falta criar uma folha de estilos para dispositivos móveis (talvez uma específica também para o iPhone/iPod Touch) e outra para ecrãs mais pequenos, como por exemplo uma TV (sim, há quem use o <a title="myTVShows" href="http://www.mytvshows.org">myTVShows</a> directamente na TV).</p>
<h2>Futuro</h2>
<p>Como disse no início, esta nova versão está longe de ser uma versão final. Optei por divulgá-la já porque penso que já amadureceu o suficiente e também porque ando a ler o livro &#8220;<a href="https://gettingreal.37signals.com/">Getting Real</a>&#8221; da 37 Signals que indica que uma aplicação web deve ser lançada para o público logo que possível. Os próprios utilizadores irão encontrar e ajudar a resolver os bugs e a seleccionar as funcionalidades que mais querem ao longo do desenvolvimento da própria aplicação <img src='http://www.ivogomes.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Sendo assim, caso encontrem alguns bugs ou queiram que sejam adicionadas ainda mais funcionalidades (lembrem-se que isto é suposto ser KISS &#8211; &#8220;Keep It Simple, Stupid&#8221;), <a href="http://www.mytvshows.org/contacts.php">informem-me</a>!</p>
<p>Boas Séries!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivogomes.com/blog/mytvshows-3-as-novidades/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Workshop de AJAX. Quem está interessado?</title>
		<link>http://www.ivogomes.com/blog/workshop-de-ajax-quem-esta-interessado/</link>
		<comments>http://www.ivogomes.com/blog/workshop-de-ajax-quem-esta-interessado/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 14:05:24 +0000</pubDate>
		<dc:creator>Ivo Gomes</dc:creator>
				<category><![CDATA[CSS & Webstandards]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://www.ivogomes.com/?p=468</guid>
		<description><![CDATA[Aqui na <a href="http://www.log.pt">log</a> estamos a pensar fazer um Workshop de AJAX e convidar um orador bastante conhecido nesta área para dar a formação (<a href="http://www.clearleft.com/about/jeremy/">Jeremy Keith</a>, autor dos livros "<a href="http://bulletproofajax.com/">Bulletproof AJAX</a>" e "<a href="http://domscripting.com/book/">DOM Scripting</a>"). ]]></description>
			<content:encoded><![CDATA[<p>Aqui na <a href="http://www.log.pt">log</a> estamos a pensar fazer um Workshop de <acronym title="Em Ingl&ecirc;s: Asynchronous JavaScript and XML">AJAX</acronym> e convidar um orador bastante conhecido nesta área para dar a formação (<a href="http://www.clearleft.com/about/jeremy/">Jeremy Keith</a>, autor dos livros &#8220;<a href="http://bulletproofajax.com/">Bulletproof <acronym title="Em Ingl&ecirc;s: Asynchronous JavaScript and XML">AJAX</acronym></a>&#8221; e &#8220;<a href="http://domscripting.com/book/">DOM Scripting</a>&#8220;). </p>
<p>Uma vez que se torna um pouco caro trazer um orador deste tipo a Portugal, gostava de saber quantas pessoas estariam interessadas em participar. Dessa forma podemos ter uma ideia dos preços que podemos cobrar. Chocava-os terem de pagar por exemplo 300€ para assistir a uma formação deste tipo? </p>
<p>Uma vez que não me lembro de ter havido nenhum workshop ou formação de <acronym title="Em Ingl&ecirc;s: Asynchronous JavaScript and XML">AJAX</acronym> em Portugal nos últimos tempos (pelo menos não com esta categoria <img src='http://www.ivogomes.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ), penso que seria uma mais valia para todos os que nela participem <img src='http://www.ivogomes.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Digam de vossa justiça!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivogomes.com/blog/workshop-de-ajax-quem-esta-interessado/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Abrir/Fechar elementos usando Javascript e CSS</title>
		<link>http://www.ivogomes.com/blog/abrirfechar-elementos-usando-javascript-e-css/</link>
		<comments>http://www.ivogomes.com/blog/abrirfechar-elementos-usando-javascript-e-css/#comments</comments>
		<pubDate>Wed, 14 Mar 2007 12:14:26 +0000</pubDate>
		<dc:creator>Ivo Gomes</dc:creator>
				<category><![CDATA[CSS & Webstandards]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://www.ivogomes.com/blog/abrirfechar-elementos-usando-javascript-e-css/</guid>
		<description><![CDATA[Basicamente, através de um pequeno código Javascript e uma linha de CSS conseguimos fazer com que um determinado elemento se abra ou feche mediante um clique. Por exemplo, podemos querer ter alguma informação na página que é acedida apenas quando o utilizador clica num link. Isto faz com que essa informação apareça sem ter que recarregar a página (no fundo, a informação está lá, mas está escondida).]]></description>
			<content:encoded><![CDATA[<p>Vou começar hoje a publicar uma série de artigos com exemplos de código que costumo usar para elaborar vários tipos de layout (<acronym title="Em Ingl&ecirc;s: HyperText Markup Language">HTML</acronym>+<acronym title="Em Ingl&ecirc;s: Cascading Style Sheets">CSS</acronym>) e efeitos em Javascript ou <acronym title="Em Ingl&ecirc;s: Asynchronous JavaScript and XML">AJAX</acronym> (algo que estou a começar a aprender a mexer este ano).</p>
<p>Estes exemplos irão contemplar temas como: criação de 2 ou mais colunas usando <acronym title="Em Ingl&ecirc;s: Cascading Style Sheets">CSS</acronym>, como criar menus usando uma lista de itens, como posicionar elementos num local exacto numa página, bem como alguns efeitos simples em Javascript. Estou aberto a sugestões <img src='http://www.ivogomes.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hoje começo com o tema:</p>
<h2>Abrir/Fechar elementos usando Javascript e <acronym title="Em Ingl&ecirc;s: Cascading Style Sheets">CSS</acronym></h2>
<p>Basicamente, através de um pequeno código Javascript e uma linha de <acronym title="Em Ingl&ecirc;s: Cascading Style Sheets">CSS</acronym> conseguimos fazer com que um determinado elemento se abra ou feche mediante um clique. Por exemplo, podemos querer ter alguma informação na página que é acedida apenas quando o utilizador clica num link. Isto faz com que essa informação apareça sem ter que recarregar a página (no fundo, a informação está lá, mas está escondida).</p>
<p>Para tal, basta termos o seguinte código Javascript e colocá-lo na nossa página ou num ficheiro externo:</p>
<ol class="code">
<li><code>function toggle(obj) {</code></li>
<li class="tab1"><code>var el = document.getElementById(obj);</code></li>
<li class="tab1"><code>if ( el.style.display != 'none' ) {</code></li>
<li class="tab2"><code>el.style.display = 'none';</code></li>
<li class="tab1"><code>}</code></li>
<li class="tab1"><code>else {</code></li>
<li class="tab2"><code>el.style.display = '';</code></li>
<li class="tab1"><code>}</code></li>
<li><code>}</code></li>
</ol>
<p>No <acronym title="Em Ingl&ecirc;s: HyperText Markup Language">HTML</acronym> teremos o link para abrir/fechar a caixa de informação (nota, é necessário indicar que &#8220;id&#8221; é que vamos abrir/fechar):</p>
<ol class="code">
<li><code>&lt;a href="#" onclick="toggle('maisinfo');"&gt;Mais Informação&lt;/a&gt;</code></li>
</ol>
<p>E finalmente, a <code>div</code> com a &#8220;id&#8221; que será aberta ou fechada usando o link anterior:</p>
<ol class="code">
<li><code>&lt;div id="maisinfo" style="display:none"&gt;Conteúdos que ficarão escondidos&lt;/div&gt;</code></li>
</ol>
<p>O <acronym title="Em Ingl&ecirc;s: Cascading Style Sheets">CSS</acronym> usado nesta <code>div</code> indica que este elemento está escondido quando se abrir a página. Se quiserem que o elemento apareça aberto, basta remover a instrução do <code>style</code>.</p>
<p><a href="http://www.ivogomes.com/exemplos/toggle.php">Ver exemplo 1</a></p>
<h2>E para quem não tem o javascript activado no browser?</h2>
<p>Pegando no Exemplo 1, vamos fazer com que o link &#8220;Mais Informação&#8221; apenas apareça para os browsers que tiverem o Javascript activado. Sendo assim, alteramos o link para:</p>
<ol class="code">
<li><code>&lt;script&gt;</code></li>
<li class="tab1"><code>if (true) {</code></li>
<li class="tab2"><code>document.write('&lt;p&gt;&lt;a href="#" onclick="toggle(\'maisinfo\');"&gt;Mais Informação&lt;/a&gt;&lt;/p&gt;');</code></li>
<li class="tab1"><code>}</code></li>
<li><code>&lt;/script&gt;</code></li>
<li><code>&lt;noscript&gt;&lt;p class="erro"&gt;O Javascript está desactivado no seu browser.&lt;/p&gt;&lt;/noscript&gt;</code></li>
</ol>
<p>Ou seja, caso não exista nenhuma versão de Javascript, apenas mostramos o texto que está entre as tags <code>noscript</code>.<br />
Esta versão ainda não está perfeita porque falta dizer ao browser que, se não houver javascript, então os conteúdos devem ter um <code>display:block</code>, caso contrário, um utilizador com <acronym title="Em Ingl&ecirc;s: Cascading Style Sheets">CSS</acronym> activo e Javascript desactivo, não irá ver o texto.</p>
<p><a href="http://www.ivogomes.com/exemplos/toggle2.php">Ver exemplo 2</a></p>
<h2>Fazer a mesma coisa, mas com efeitos animados (Script.aculo.us + Prototype)</h2>
<p>Para que possamos animar a abertura/fecho do elemento, necessitamos de usar uma &#8220;library&#8221; de efeitos. Neste exemplo, vamos usar a <a href="http://script.aculo.us/">Script.aculo.us</a>.<br />
A Scrip.taculo.us é uma biblioteca de efeitos em Javascript que pode ser facilmente usada no nosso site, sem ser necessário grandes conhecimentos de programação. Basta fazer download e colocar numa pasta do site.</p>
<p>No cabeçalho da página, temos que chamar os efeitos, assim:</p>
<ol class="code">
<li><code>&lt;script type="text/javascript" src="/lib/js/prototype.js"&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript" src="/lib/js/scriptaculous.js"&gt;&lt;/script&gt;</code></li>
</ol>
<p><strong>Nota: </strong>Iremos usar esta biblioteca em vez do javascript usado no Exemplo 1.</p>
<p>Depois basta alterar o link que também tinhamos definido para algo como:</p>
<ol class="code">
<li><code>&lt;a href="#" onclick="Effect.toggle('maisinfo','slide'); return false;"&gt;</code></li>
</ol>
<p>Em que: &#8220;maisinfo&#8221; é o nome da <code>div</code> a abrir/fechar e &#8220;slide&#8221; é o efeito. Podemos usar outros efeitos, tais como &#8220;blind&#8221; ou &#8220;appear&#8221;.</p>
<p><a href="http://www.ivogomes.com/exemplos/toggle3.php">Ver exemplo 3</a></p>
<h2>Separação do Javascript dos conteúdos</h2>
<p>Da mesma forma que podemos separar a apresentação (<acronym title="Em Ingl&ecirc;s: Cascading Style Sheets">CSS</acronym>) dos conteúdos (<acronym title="Em Ingl&ecirc;s: HyperText Markup Language">HTML</acronym>), também é possível separar os efeitos e outras animações (Javascript) para fora do código <acronym title="Em Ingl&ecirc;s: HyperText Markup Language">HTML</acronym>.<br />
(Obrigado ao <a href="http://www.sergionunes.com/">Sérgio Nunes</a> pela dica!)</p>
<p>Fiz um pequeno teste com base no Exemplo 1, em que modifiquei o <acronym title="Em Ingl&ecirc;s: HyperText Markup Language">HTML</acronym>, removendo todo o Javascript e colocando as acções à parte no Javascript.</p>
<p><a href="http://www.ivogomes.com/exemplos/toggle4.php">Ver exemplo 4</a></p>
<h2>E fazendo a mesma coisa usando jQuery</h2>
<p>Graças ao <a href="http://blog.logon.com.pt/">José Carlos</a>, temos um exemplo que consegue fazer tudo o que os anteriores fazem, e melhor. Através do <a href="http://jquery.com/">jQuery</a>, uma biblioteca de Javascript, é possível, com pouco código, abrir ou fechar um elemento usando animação e, ao mesmo tempo, ter em conta os utilizadores que não têm javascript activado. Além de tudo isto, faz também a separação do Javascript para um ficheiro externo, o que nos deixa com um <acronym title="Em Ingl&ecirc;s: HyperText Markup Language">HTML</acronym> limpo e sem mais nenhuma tag que não seja <acronym title="Em Ingl&ecirc;s: HyperText Markup Language">HTML</acronym> puro.</p>
<p><a href="http://www.ivogomes.com/exemplos/toggle5.php">Ver exemplo 5</a></p>
<p>Definitivamente, esta é a melhor solução para este tipo de situações.</p>
<h2>Outros métodos</h2>
<p>O <a href="http://www.dustindiaz.com/seven-togglers/">Dustin Diaz mostra 7 maneiras diferentes de abrir/fechar (toggle) um elemento</a> usando Javascript. Estes exemplos fazem basicamente a mesma coisa mostrada no Exemplo 1, mas usando várias metodologias diferentes.</p>
<h2>Conclusão</h2>
<p>Usando um pequeno pedaço de código é possível tornar o nosso site um pouco mais interactivo. É claro que este tipo de elementos e as animações não devem ser usadas em demasia, mas sim, tendo em conta um propósito e um objectivo bem definidos que facilitem de alguma forma a navegabilidade do site.<br />
Por exemplo, esta função seria bastante útil numa listagem de itens com um link para &#8220;ver mais informações&#8221; sobre cada um deles. Desta forma, o utilizador não seria bombardeado com tanta informação de início e ao mesmo tempo teria a liberdade de poder abrir a informação detalhada de cada elemento sem ter que recarregar a página inteira nem distrair-se com outra informação que não é relevante na altura.</p>
<p><strong>Nota: </strong>Este artigo é apenas uma forma de eu ir testando algumas coisas em Javascript. Uma vez que só agora estou a aprender a usar esta linguagem (ainda só consigo usar coisas que outros já desenvolveram) é normal que nos comentários apareçam pessoas mais entendidas que eu e que dêem melhores sugestões/soluções para estes problemas. De qualquer das formas, a discussão do tema ajudará sempre a que eu (e outros) possamos aprender um pouco mais. Talvez nos próximos artigos me fique exclusivamente pelo <acronym title="Em Ingl&ecirc;s: HyperText Markup Language">HTML</acronym>+<acronym title="Em Ingl&ecirc;s: Cascading Style Sheets">CSS</acronym> e deixe o javascript um pouco de lado até perceber minimamente da coisa <img src='http://www.ivogomes.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivogomes.com/blog/abrirfechar-elementos-usando-javascript-e-css/feed/</wfw:commentRss>
		<slash:comments>59</slash:comments>
		</item>
	</channel>
</rss>

