<?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>Tableless &#187; animação</title>
	<atom:link href="http://tableless.com.br/tag/animacao/feed/" rel="self" type="application/rss+xml" />
	<link>http://tableless.com.br</link>
	<description>Boas práticas de Desenvolvimento com Padrões Web</description>
	<lastBuildDate>Wed, 08 Feb 2012 13:23:50 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Animando com jQuery</title>
		<link>http://tableless.com.br/animando-com-jquery/</link>
		<comments>http://tableless.com.br/animando-com-jquery/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 10:00:17 +0000</pubDate>
		<dc:creator>Michael Granados</dc:creator>
				<category><![CDATA[Client-Side]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[animação]]></category>
		<category><![CDATA[bibliotecas]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[fadein]]></category>
		<category><![CDATA[fadeout]]></category>
		<category><![CDATA[fadeto]]></category>
		<category><![CDATA[programadores]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=1021</guid>
		<description><![CDATA[Que tal experimentar fazer uma área onde o usuário clica em um botão de mostrar/ocultar menu?]]></description>
			<content:encoded><![CDATA[<p>Um dos recursos mais procurados pelos designers (e programadores) em bibliotecas é animação. Existem bibliotecas e mais bibliotecas que fazem animações de diversas formas. Em prototype por exemplo, deve-se anexar a biblioteca scriptaculous para que seja possivel realizar animações. Já em mootools existem várias formas de resolver o mesmo problema, sendo assim um pouco mais complicado de lembrar de tudo isso.<span id="more-1021"></span> Por jQuery ser uma biblioteca simples com somente o funcional, o trabalho se torna mais simples, logo mais rápido de desenvolver as soluções.</p>
<p>Em jQuery &#8211; como já vimos aqui e aqui, temos animações que podemos usar nos projetos: slideUp, slideDown, slideToggle, fadeIn, fadeOut e fadeTo, além de show e hide. São efeitos simples que você pode utilizar em qualquer lugar, e suas nomenclaturas também sao simples a ponto de serem intuitivas na hora do serviço de fato.</p>
<h3>Slide</h3>
<p>Que tal experimentar fazer uma área onde o usuário clica em um botão de mostrar/ocultar menu? Com apenas duas tags, a jQuery consegue executar essa tarefa.</p>
<p>Tomemos a seguinte marcação:</p>
<pre lang="html" line="1">
<div>
&lt;!--
Aqui vem a área, que você pode manipulá-la como quiser,
experimente um formulário de login ou um menu inline ou uma
bela imagem.
--&gt;
</div>
</pre>
<p>Apenas com HTML e CSS fazemos a <a href="http://dgmike.com.br/tableless/jquery/caixa-de-ferramentas-simples.html">versão que funcionará sem javascript</a>. Pense sempre dessa forma, assim você não corre o risco de fazer javascript obstrusivo. É por isso que não foi colocado o link onde o usuário clicará para aparecer e sumir com a área. Veja como ficará este <a href="http://dgmike.com.br/tableless/jquery/caixa-de-ferramentas.html">exemplo estilizado</a> com apenas com algumas linhas de código de CSS.</p>
<p>Feita a primeira e a segunda camada (conteúdo feito no HTML e apresentação feita no CSS) partimos para a interação, que quem comanda é a jQuery. Primeiro, precisamos adicionar o link onde o usuário poderá clicar para fazer a área sumir e reaparecer, faremos isso dinamicamente com a ajuda do nosso Framework preferido. Com o método after (depois em inglês) adicionamos facilmente o nosso link.</p>
<pre lang="javascript" line="1">$('#area').after('<a id="mostra-esconde-area" href="#area" title="Mostrar/Esconder Área">Mostrar/Esconder Área</a>')</pre>
<p>Após isto, só precisamos adicionar a animação ao nosso botão, fazendo ele animar a área desejada. Com o comando toggle, nem precisamos nos preocupar com o estado no qual a área se encontra, afinal, ele vai aparecer e desaparecer conforme o necessário.</p>
<pre lang="javascript" line="1">$('#mostra-esconde-area').click(function(){
$('#area').slideToggle()
})</pre>
<p>Não esqueça que estes comandos devem estar dentro da função de inicialização da jQuery. Então o script final ficará assim.</p>
<pre lang="javascript" line="1">$(function(){
$('#area').after('<a id="mostra-esconde-area" href="#area" title="Mostrar/Esconder Área">Mostrar/Esconder Área</a>')
$('#mostra-esconde-area').click(function(){ $('#area').slideToggle() })
})</pre>
<p>Ao todo para fazermos a animação e a interação, não gastamos mais que cinco linhas de código javascript. Veja no <a href="http://dgmike.com.br/tableless/jquery/caixa-de-ferramentas-animado.html">exemplo final</a> (<a href="http://dgmike.com.br/tableless/jquery/caixa-de-ferramentas-simples-animado.html">ou com pouco CSS</a>), como esse tipo de interação pode dar um gás na sua aplicação.</p>
<h3>Opacidade</h3>
<p>Uma outra propriedade que a jQuery trabalha e que pode resultar em ótimas melhorias na usabilidade do usuário é a propriedade <em>opacity</em>. Ou seja, a transparencia dos elementos, e graças aos métodos <em>fadeIn</em>, <em>fadeOut</em> podemos fazer um <em>tooltip</em> com poucas linhas de código.</p>
<p>Primeiro, escrevemos o HTML necessário. Sempre pensando de forma não obstrusiva, ou seja, se o navegador do usuário não tiver javascript habilitado, ele não deve ter sua navegabilidade atrapalhada.</p>
<pre lang="html" line="1">
<ul>
<li><a href="google.com" title="Encontre o que você procura">Google</a></li>
<li><a href="tableless.com.br" title="Webstandards com Feijão e Farofa">Tableless</a></li>
</ul>
</pre>
<p>Com algumas linhas de CSS aplicamos uma <a href="http://dgmike.com.br/tableless/jquery/tooltip-simples.html">interface interessante</a> para nosso menu. Para a construção usamos o atributo <em>title</em>, assim o usuário que não estiver com o javascript habilitado poderá navegar no site vendo todos os recursos que ele teria se o javascript estivesse habilitado.</p>
<p>A primeira tarefa da jQuery é criar um span onde vamos colocar o mesmo texto do atributo. Não podemos manipular o atributo title, ele fica com o padrão do sistema operacional do usuário, já um span podemos implementar o que nossa imaginação mandar, até mesmo criar balões colocando backgrounds, se necessário.</p>
<p>Para fazer isso, precisamos usar o método <em>each</em>, que percorre todos os elementos chamados aplicando a cada um uma diretiva específica.</p>
<pre lang="javascript" line="1">$('#menu li a').each(function(){
  $(this).append('<span>'+this.title+'</span>')
  this.title=''
})</pre>
<p>No método each nós passamos uma função, nessa função, a palavra-chave &#8220;this&#8221; indica o item que está sendo tratado pelo each (um de cada vez), ou seja, cada link específico. A cada link <em>appendamos</em>, ou seja, adicionamos ao fim de seu conteúdo o valor de seu atributo title dentro de uma tag span. Depois, limpamos o valor de seu title. Assim, removemos o tooltip original, deixando apenas o que será aplicado nos próximos passos.</p>
<p>Agora, a mágica. Adicionamos aos links a ação de hover que irá exibir seus filhos (o span que acabamos de adicionar) e ao mesmo tempo adicionamos a ação de sumir quando ele sair, fazemos isso com o próprio hover. Poderiamos fazer isso com os métodos <em>show</em>, <em>hide</em> ou mesmo o <em>toggle</em>, mas para ficar mais interessante para o usuário, resolvi usar <em>fadeIn</em> e <em>fadeOut</em>. Veja que mesmo assim, o código não fica tão impossível de entender.</p>
<pre lang="javascript" line="1">$('#menu li a').hover(function() {
  $(this).children().show()
},function(){
  $(this).children().hide()
})</pre>
<p>Enfim, aplicamos estes dois trechos de script ao nosso &#8220;inicializator-jquery&#8221; que fará com que esse script seja executado apenas após carregar a página, ou seja, quando todos os elementos já tiverem sido carregados. Também adicionamos ao CSS algumas linhas de código para deixar o tooltip amigável. <a href="http://dgmike.com.br/tableless/jquery/tooltip-simples-animado.html" title="Tooltip simples animado com JQuery">Veja como é muito</a> interessante esse efeito, agora com o nosso novo tooltip.</p>
<p>A jQuery manipula muito bem efeitos simples (mas que resolvem a esmagadora quantidade de problemas) que muitas bibliotecas insistem em deixar confuso demais ou complexo demais por adicionar mais e mais configurações para cada efeito. Por isso jQuery é uma ferramenta muito poderosa.</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/vote-no-especialista-em-usabilidade-para-presidente/" title="Vote no Especialista em Usabilidade para Presidente">Vote no Especialista em Usabilidade para Presidente</a></li><li><a href="http://tableless.com.br/epub-aprenda-a-criar-um-livro-digital/" title="ePub: Aprenda a criar um livro digital">ePub: Aprenda a criar um livro digital</a></li><li><a href="http://tableless.com.br/jquery-metodos-desconhecidos/" title="jQuery: métodos desconhecidos">jQuery: métodos desconhecidos</a></li><li><a href="http://tableless.com.br/boas-praticas-de-acessibilidade/" title="Boas práticas de Acessibilidade">Boas práticas de Acessibilidade</a></li><li><a href="http://tableless.com.br/um-pensamento-sobre-design-para-web/" title="Um pensamento sobre design para web">Um pensamento sobre design para web</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/animando-com-jquery/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
	</channel>
</rss>

