<?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>JulioGreff.net &#187; menu</title>
	<atom:link href="http://juliogreff.net/tag/menu/feed/" rel="self" type="application/rss+xml" />
	<link>http://juliogreff.net</link>
	<description>A mesma web, um novo estilo de desenvolvimento</description>
	<lastBuildDate>Sat, 07 May 2011 17:07:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Mootools &#8211; Menu Sanfona</title>
		<link>http://juliogreff.net/mootools-menu-sanfona/</link>
		<comments>http://juliogreff.net/mootools-menu-sanfona/#comments</comments>
		<pubDate>Sun, 13 Apr 2008 19:48:54 +0000</pubDate>
		<dc:creator>Julio Greff</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[mootools]]></category>

		<guid isPermaLink="false">http://juliogreff.blog.br/?p=138</guid>
		<description><![CDATA[A Mootools, além de ser uma ótima biblioteca para tarefas variadas relacionadas a Strings, Arrays, DOM e Ajax, ela também possui alguns &#34;extras&#34; muito úteis na hora de desenvolver algo mais &#34;bonitinho&#34;. O menu sanfona (ou accordion menu, como preferir) é um deles, do qual irei falar nesse post mais-do-que-atrasado. Aproveite e veja como ficará. [...]

<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/mootools-options/' rel='bookmark' title='Permanent Link: Mootools &#8211; Options'>Mootools &#8211; Options</a></li>
<li><a href='http://juliogreff.net/lancada-a-mootools-12/' rel='bookmark' title='Permanent Link: Lançada a Mootools 1.2'>Lançada a Mootools 1.2</a></li>
<li><a href='http://juliogreff.net/ajax-com-a-mootools/' rel='bookmark' title='Permanent Link: Ajax com a Mootools'>Ajax com a Mootools</a></li>
<li><a href='http://juliogreff.net/sliders-com-mootools/' rel='bookmark' title='Permanent Link: Sliders com Mootools'>Sliders com Mootools</a></li>
<li><a href='http://juliogreff.net/scroller-made-in-mootools/' rel='bookmark' title='Permanent Link: Scroller Made in Mootools'>Scroller Made in Mootools</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>
   A <a href="http://mootools.net/" rel="external" title="Mootools Library">Mootools</a>, além de ser uma ótima biblioteca para tarefas variadas relacionadas a Strings, Arrays, DOM e Ajax, ela também possui alguns &quot;extras&quot; muito úteis na hora de desenvolver algo mais &quot;bonitinho&quot;. O <strong>menu sanfona</strong> (ou <strong>accordion menu</strong>, como preferir) é um deles, do qual irei falar nesse post mais-do-que-atrasado. <a href="http://juliogreff.net/scripts/mootools-accordion/" title="Menu Sanfona com Mootools - Exemplo">Aproveite e veja como ficará</a>.
</p>
<h3>
   O HTML<br />
</h3>
<p>
   Antes de começar com o comportamento, primeiro vamos criar o conteúdo do menu. Uma lista simples, com outras listas aninhadas, as quais<br />
   ficarão escondidas até que seus títulos sejam clicados.
</p>
<pre><code>&lt;ul&gt;
        &lt;li&gt;&lt;h3&gt;Título 1&lt;/h3&gt;
                &lt;ul&gt;
                        &lt;li&gt;Item 1&lt;/li&gt;
                        &lt;li&gt;Item 2&lt;/li&gt;
                        &lt;li&gt;Item 3&lt;/li&gt;
                &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;&lt;h3&gt;Título 2&lt;/h3&gt;
                &lt;ul&gt;
                        &lt;li&gt;Item 1&lt;/li&gt;
                        &lt;li&gt;Item 2&lt;/li&gt;
                        &lt;li&gt;Item 3&lt;/li&gt;
                &lt;/ul&gt;
        &lt;/li&gt;
&lt;/ul&gt;</code></pre>
<p>Nada em especial até agora, mas temos que incluir mais alguns atributos aí. Para que a Mootools possa identificar quais itens serão clicáveis e quais deverão ficar &#8220;escondidos&#8221;, precisamos identificá-los com classes. Não há restrição para alguma classe específica, mas costumo usar <code>toggler</code> para os clicáveis e <code>element</code> para os itens escondidos.</p>
<pre><code>&lt;ul&gt;
        &lt;li&gt;&lt;h3 class="toggler"&gt;Título 1&lt;/h3&gt;
                &lt;ul class="element"&gt;
                        &lt;li&gt;Item 1&lt;/li&gt;
                        &lt;li&gt;Item 2&lt;/li&gt;
                        &lt;li&gt;Item 3&lt;/li&gt;
                &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;&lt;h3 class="toggler"&gt;Título 2&lt;/h3&gt;
                &lt;ul class="element"&gt;
                        &lt;li&gt;Item 1&lt;/li&gt;
                        &lt;li&gt;Item 2&lt;/li&gt;
                        &lt;li&gt;Item 3&lt;/li&gt;
                &lt;/ul&gt;
        &lt;/li&gt;
&lt;/ul&gt;</code></pre>
<h3>O Script</h3>
<p>Agora sim, a parte difícil, ou nem tanto assim. Como tudo na Mootools é baseado em <a href="http://juliogreff.net/mootools-classes/" title="Mootools - Classes">classes</a>, o menu sanfona não foge à regra. A classe <code>Accordion</code> é a responsável por todo o menu, desde identificar seus elementos até mostrar/esconder o conteúdo.</p>
<pre><code>window.addEvent('domready', function() {
	var accordion = new Accordion('h3.toggler', 'ul.element')
})</code></pre>
<p>Como parâmetros, passamos os títulos clicáveis e o conteúdo de cada item, somente isso. A biblioteca cuida do resto. Difícil, não?</p>
<h3>Algumas Opções</h3>
<p>Podemos ir um pouco além do básico, e adicionar alguma personalização em nosso menu. Para isso, a classe nos dá algumas opções. Basta passar um objeto como terceiro parâmetro. As opções possíveis são:</p>
<ul>
<li><code>show</code>: índice do elemento a ser mostrado inicialmente</li>
<li><code>display</code>: índice do elemento a ser mostrado inicialmente. Diferentemente de <code>show</code>, esse elemento será mostrado com uma transição</li>
<li><code>fixedHeight</code>: altura fixa dos itens, padrão <code>false</code></li>
<li><code>fixedWidth</code>: largura fixa dos itens, padrão <code>false</code></li>
<li><code>height</code>: inclui transição de altura, padrão <code>true</code></li>
<li><code>opacity</code>: inclui transição de opacidade, padrão <code>true</code></li>
<li><code>width</code>: inclui transição de largura, padrão <code>false</code></li>
<li><code>alwaysHide</code>: permite esconder todos elementos, em vez de manter ao menos um sendo mostrado, padrão <code>false</code></li>
</ul>
<p>Além das opções, temos também dois <a href="http://juliogreff.net/mootools-eventos/" title="Mootools - Eventos">eventos</a>:</p>
<ul>
<li><code>onActive</code>: executado quando algum item se tornar ativo</li>
<li><code>onBackground</code>: executado quando algum item for escondido</li>
</ul>
<h3>Finalizando</h3>
<p>Agora vamos modificar um pouco nosso menu, utilizando as opções e eventos vistos acima.</p>
<pre><code>window.addEvent('domready', function() {
	var accordion = new Accordion('h3.toggler', 'ul.element', {
		"opacity": false,
		"onActive": function(toggler) {
			toggler.setStyle("color", "#f00");
			toggler.setStyle("font-weight", "bold");
		},
		"onBackground": function(toggler) {
			toggler.setStyle("color", "#000");
			toggler.setStyle("font-weight", "normal");
		}
	})
})</code></pre>
<p>Pronto! <a href="http://juliogreff.net/scripts/mootools-accordion/" title="Menu Sanfona com Mootools - Exemplo">Veja o exemplo finalizado</a>. E mais: retirando todas as transições, você tem um menu sanfona totalmente customizável. O poder e a facilidade da Mootools. Incrível, muito bem pensado, por isso adoro essa biblioteca. Até mais!</p>


<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/mootools-options/' rel='bookmark' title='Permanent Link: Mootools &#8211; Options'>Mootools &#8211; Options</a></li>
<li><a href='http://juliogreff.net/lancada-a-mootools-12/' rel='bookmark' title='Permanent Link: Lançada a Mootools 1.2'>Lançada a Mootools 1.2</a></li>
<li><a href='http://juliogreff.net/ajax-com-a-mootools/' rel='bookmark' title='Permanent Link: Ajax com a Mootools'>Ajax com a Mootools</a></li>
<li><a href='http://juliogreff.net/sliders-com-mootools/' rel='bookmark' title='Permanent Link: Sliders com Mootools'>Sliders com Mootools</a></li>
<li><a href='http://juliogreff.net/scroller-made-in-mootools/' rel='bookmark' title='Permanent Link: Scroller Made in Mootools'>Scroller Made in Mootools</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://juliogreff.net/mootools-menu-sanfona/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

