<?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; scripts</title>
	<atom:link href="http://juliogreff.net/tag/scripts/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>Scroller Made in Mootools</title>
		<link>http://juliogreff.net/scroller-made-in-mootools/</link>
		<comments>http://juliogreff.net/scroller-made-in-mootools/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 09:00:17 +0000</pubDate>
		<dc:creator>Julio Greff</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WebStandards]]></category>
		<category><![CDATA[bibliotecas]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://juliogreff.blog.br/?p=164</guid>
		<description><![CDATA[Mesmo a Mootools sendo a biblioteca perfeita (pra mim, pelo menos), algumas vezes é preciso de uma pequena ajudinha externa. Exemplo de hoje: scrollers! Nada mais fácil do que fazer um deles exclusivamente com Mootools, mas é meio chato ter que criar os controladores (ou setinhas) e saber quem é o anterior ou o próximo. [...]

<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/mootools-chain/' rel='bookmark' title='Permanent Link: Mootools &#8211; Chain'>Mootools &#8211; Chain</a></li>
<li><a href='http://juliogreff.net/mootools-eventos/' rel='bookmark' title='Permanent Link: Mootools &#8211; Eventos'>Mootools &#8211; Eventos</a></li>
<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/sliders-com-mootools/' rel='bookmark' title='Permanent Link: Sliders com Mootools'>Sliders com Mootools</a></li>
<li><a href='http://juliogreff.net/mootools-menu-sanfona/' rel='bookmark' title='Permanent Link: Mootools &#8211; Menu Sanfona'>Mootools &#8211; Menu Sanfona</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Mesmo a Mootools sendo a biblioteca perfeita (pra mim, pelo menos), algumas vezes é preciso de uma pequena ajudinha externa. Exemplo de hoje: <strong>scrollers</strong>! Nada mais fácil do que fazer um deles exclusivamente com Mootools, mas é meio chato ter que criar os controladores (ou setinhas) e saber quem é o anterior ou o próximo.</p>
<p>Como acabei precisando de um scroller assim, aproveitei e criei uma classe que poderei reutilizar em algum outro projeto em que ela se faça necessária. Já que gostei do resultado, vou aproveitar e deixar o script pra vocês. O resultado será algo parecido com <a title="Scroller Made in Mootools" href="http://juliogreff.net/scripts/mootools-scroller/">esse exemplo</a>. Prontos? Então vamos lá!</p>
<h3>O Código</h3>
<p class="left"><a title="Scroller Made in Mootools" href="http://juliogreff.net/scripts/mootools-scroller/"><img title="Scroller Made in Mootools" src="http://juliogreff.net/wp-uploads/download-script.png" alt="Scroller Made in Mootools" /></a></p>
<p>O script não poderia ser mais simples, em torno de umas 50 linhas de código (você precisaria de <strong>centenas</strong> se não fosse a Mootools, ou alguma outra biblioteca que faça o serviço sujo). Você pode fazer o download dele <a title="Scroller Made in Mootools" href="http://juliogreff.net/scripts/mootools-scroller/">aqui</a>. Para &#8220;instalá-lo&#8221;, basta incluí-lo em seu documento, assim como a <a title="Mootools - Download" rel="external" href="http://mootools.net/download/">Mootools</a>. Além disso, você também vai precisar do plugin <strong>Fx.Scroll</strong>, que pode ser conseguido no <a title="Mootools - More Builder" rel="external" href="http://mootools.net/more">More Builder da Mootools</a>, e incluí-lo no seu documento também.</p>
<p><strong>Update:</strong> logo que precisei usar a classe novamente, vi que cometi um erro grotesco. Código atualizado, com erro corrigido e uma nova funcionalidade, explicada logo abaixo. Valendo uma mariola pra quem descobrir minha estupidez, os dois códigos estão disponíveis para download.</p>
<h3>O HTML</h3>
<p>O HTML necessário é a parte que eu considero a mais complicada, chata e sem graça. Sem o HTML criado direitinho, o scroller não vai funcionar. A lógica é a seguinte: precisamos de um <strong>container</strong> (geralmente uma div) de uma largura (ou altura) fixa. Esse container é quem vai esconder os itens que não serão mostrados no scroller. Dentro desse container, vamos precisar de mais um container (geralmente mais uma div, ou então uma lista), também de altura/largura fixa, mas que seja igual a toda a extensão dos itens. Ou seja, o container de dentro será maior do que o container de fora.</p>
<pre><code>&lt;div id="container"&gt;
    &lt;div&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre>
<p>Acredite, é mais complicado do que parece. Agora sim, podemos colocar nossos itens dentro do container que está dentro de outro container (hein?). Fora isso, precisamos apenas de mais dois elementos (podem ser links) para serem os handlers de anterior e próximo e pronto, aí está o HTML. Só precisamos do CSS que vai ajudar na mágica do script.</p>
<h3>O CSS</h3>
<p>Como o nosso container externo precisa esconder o que há no container interno (que é maior), ele precisará de um <code>overflow: hidden</code>. Sem isso, tudo o que há no container interno ficará exposto, e aí o scroller perde a graça. Também não podemos nos esquecer de definir as alturas/larguras dos containers e itens. Vamos fazer primeiro um scroller vertical, ligeiramente mais fácil:</p>
<pre><code>* {
  margin: 0;
  padding: 0;
}
#container {
  height: 20px;
  overflow: hidden;
  width: 100px;
}
#container div {
  /* Não é necessário definir a altura, o elemento irá "crescer" sozinho */
  width: 100px;
}
#container p {
  /* A mesma altura de #container, mas isso pode variar com o gosto do freguês */
  height: 20px;
}</code></pre>
<h3>O Script</h3>
<p>Agora sim, vamos colocar a mão na massa. Minha classe, quando instanciada, leva apenas dois parâmetros: o container exterior (o container interior é deduzível&#8230;) e as opções. Dentre elas, temos à disposição todas as <a title="Mootools - Documentação da classe Fx" rel="external" href="http://docs.mootools.net/Fx/Fx">opções da classe Fx</a>, e também <code>previousButton</code> e <code>nextButton</code>, que são os handlers para o elemento anterior e posterior do scroller.</p>
<pre><code>var myScroller = new Fx.Scroller("container", { previousButton: "previous", nextButton: "next" })</code></pre>
<p>Aproveitando a atualização da classe, também criei vergonha na cara e adicionei os eventos <code>onNext</code> e <code>onPrevious</code>, executados quando o scroller vai para frente ou para trás, respectivamente.</p>
<p>Pronto! Você escreveu apenas uma linha de script e seu scroller já está funcional, passando de um elemento para outro com apenas um clique!</p>
<h3>Scrollers Horizontais</h3>
<p>A termos de script, um scroller horizontal é idêntico. A mágica se esconde toda no CSS para este caso. Primeiro precisamos colocar os elementos um ao lado do outro dentro do container interior, certo? Certo. Para isso, usamos a propriedade <code>float</code>, sinta-se à vontade para escolher a qual lado flutuar.</p>
<p>Passando ao segundo passo, devemos definir a <strong>largura</strong>. A fórmula é a seguinte: número de elementos vezes a largura de qualquer um deles. Se você usar <code>margins</code> ou <code>paddings</code>, não esqueça de levá-los em consideração também.</p>
<p>Usando a técnica de scrollers horizontais, também podemos criar scrollers &#8220;mistos&#8221;. Nesse caso, há várias linhas e várias colunas de itens ao mesmo tempo. O efeito, se bem usado, pode ficar muito interessante. Quem teve a oportunidade de observar os demos da versão 1.1 da Mootools deve saber do que estou falando.</p>
<h3>Dicas para Ir Além</h3>
<p>Bem, só fazer itens se mexerem pode não ter tanta graça assim pra você. Como eu disse, minha classe usa todas as opções da classe Fx, ou seja, eventos, transições, offsets, enfim. Agora é sua vez de brincar! Use o offset para mudar a posição dos itens, eventos para mudar sua opacidade, criatividade! Também sinta-se livre para usar os métodos da classe também: <code>next</code>, <code>previous</code>, <code>scrollTo</code>, <code>enable</code> e <code>disable</code> (para ativar ou desativar os botões).</p>
<p>Espero que isso sirva pra alguma coisa! E também espero postar em um intervalo um pouco menor&#8230; O pessoal deve ter pensado que eu fugi do país depois de uma <a title="Frameworks: Por um PHP Menos Ruim" href="http://juliogreff.net/frameworks-por-um-php-menos-ruim/">certa polêmica</a>. Mas não, só estive ocupado mesmo&#8230; Até mais!</p>


<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/mootools-chain/' rel='bookmark' title='Permanent Link: Mootools &#8211; Chain'>Mootools &#8211; Chain</a></li>
<li><a href='http://juliogreff.net/mootools-eventos/' rel='bookmark' title='Permanent Link: Mootools &#8211; Eventos'>Mootools &#8211; Eventos</a></li>
<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/sliders-com-mootools/' rel='bookmark' title='Permanent Link: Sliders com Mootools'>Sliders com Mootools</a></li>
<li><a href='http://juliogreff.net/mootools-menu-sanfona/' rel='bookmark' title='Permanent Link: Mootools &#8211; Menu Sanfona'>Mootools &#8211; Menu Sanfona</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://juliogreff.net/scroller-made-in-mootools/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>JGQueryString</title>
		<link>http://juliogreff.net/jgquerystring/</link>
		<comments>http://juliogreff.net/jgquerystring/#comments</comments>
		<pubDate>Fri, 22 Sep 2006 22:21:58 +0000</pubDate>
		<dc:creator>Julio Greff</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[query string]]></category>
		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://www.juliogreff.blog.br/?p=9</guid>
		<description><![CDATA[Atenção: esse script está ultrapassado e pode conter bugs. Ele não recebe mais suporte e atualização. Use por sua conta e risco. O JGQueryString é um objeto que desenvolvi para tornar o JavaScript capaz de ler Query Strings, aquelas informações passadas junto com a URL, depois do &#8220;?&#8221;. Ele permite acessar os valores das variáveis [...]

<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/escopo-de-variaveis/' rel='bookmark' title='Permanent Link: Escopo de Variáveis'>Escopo de Variáveis</a></li>
<li><a href='http://juliogreff.net/usando-with/' rel='bookmark' title='Permanent Link: Usando &#8220;With&#8221;'>Usando &#8220;With&#8221;</a></li>
<li><a href='http://juliogreff.net/javascript-orientado-a-objetos-parte-2/' rel='bookmark' title='Permanent Link: JavaScript Orientado a Objetos &#8211; Parte 2'>JavaScript Orientado a Objetos &#8211; Parte 2</a></li>
<li><a href='http://juliogreff.net/funcoes-em-diferentes-escopos/' rel='bookmark' title='Permanent Link: Funções em Diferentes Escopos'>Funções em Diferentes Escopos</a></li>
<li><a href='http://juliogreff.net/fila-de-requisicoes-em-ajax/' rel='bookmark' title='Permanent Link: Fila de Requisições em Ajax'>Fila de Requisições em Ajax</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p class="post-bug">Atenção: esse script está ultrapassado e pode conter bugs. Ele não recebe mais suporte e atualização. Use por sua conta e risco.</p>
<p>O <a href="http://juliogreff.net/wp-uploads/jgquerystring.js" title="JGQueryString">JGQueryString</a> é um objeto que desenvolvi para tornar o JavaScript capaz de ler Query Strings, aquelas informações passadas junto com a URL, depois do &#8220;?&#8221;. Ele permite acessar os valores das variáveis enviadas pelo método HTTP GET.</p>
<h3>Métodos</h3>
<ul>
<li><code>getVar</code>(varName) &#8211; Retorna o valor da variável varName.</li>
<li><code>getVars</code>() &#8211; Retorna um array contendo todas as variáveis enviadas.</li>
</ul>
<p>Exemplo de Uso:</p>
<pre><code>JGQueryString.getVar("firstName");
JGQueryString.getVars()["variavel"];
var httpGetVar = JGQueryString.getVars();
alert(httpGetVar["variavel"]);</code></pre>
<p>E a URL da página deve conter a query string: http://url/da/pagina.htm?variavel=valor&amp;outravar=outrovalor</p>
<p>Testada em IE 6 e Firefox 1.5. Quem puder testar em outros browsers, ou detectar algum bug, me avise.</p>


<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/escopo-de-variaveis/' rel='bookmark' title='Permanent Link: Escopo de Variáveis'>Escopo de Variáveis</a></li>
<li><a href='http://juliogreff.net/usando-with/' rel='bookmark' title='Permanent Link: Usando &#8220;With&#8221;'>Usando &#8220;With&#8221;</a></li>
<li><a href='http://juliogreff.net/javascript-orientado-a-objetos-parte-2/' rel='bookmark' title='Permanent Link: JavaScript Orientado a Objetos &#8211; Parte 2'>JavaScript Orientado a Objetos &#8211; Parte 2</a></li>
<li><a href='http://juliogreff.net/funcoes-em-diferentes-escopos/' rel='bookmark' title='Permanent Link: Funções em Diferentes Escopos'>Funções em Diferentes Escopos</a></li>
<li><a href='http://juliogreff.net/fila-de-requisicoes-em-ajax/' rel='bookmark' title='Permanent Link: Fila de Requisições em Ajax'>Fila de Requisições em Ajax</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://juliogreff.net/jgquerystring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

