<?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>Felipe de Albuquerque &#187; javaScript</title>
	<atom:link href="http://www.felipealbuquerque.com/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.felipealbuquerque.com</link>
	<description>Front-End Engineer &#38; Designer / Web Designer / Web Developer</description>
	<lastBuildDate>Sun, 13 Mar 2011 16:01:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>jQuery menu drop down com apenas 6 linhas</title>
		<link>http://www.felipealbuquerque.com/2010/10/01/jquery-menu-drop-down-com-apenas-6-linhas/</link>
		<comments>http://www.felipealbuquerque.com/2010/10/01/jquery-menu-drop-down-com-apenas-6-linhas/#comments</comments>
		<pubDate>Fri, 01 Oct 2010 14:28:58 +0000</pubDate>
		<dc:creator>Felipe de Albuquerque</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[javaScript]]></category>
		<category><![CDATA[Menu dropDown]]></category>

		<guid isPermaLink="false">http://www.felipealbuquerque.com/?p=554</guid>
		<description><![CDATA[Hoje tentaremos fazer jus ao slogan da biblioteca jQuery “Write less, do more” e faremos um menu drop down, com apenas 6 linhas de código JavaScript. Algumas explicações prévias: Ha algum tempo atrás, publiquei um post sobre como fazer um menu com jQuery, utilizando um método de evento do mouse (hover). Usaremos o mesmo método,]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.felipealbuquerque.com/wp-content/uploads/2010/03/MenuComjQuery.jpg"><img class="aligncenter size-full wp-image-478" title="Menu Com jQuery" src="http://www.felipealbuquerque.com/wp-content/uploads/2010/03/MenuComjQuery.jpg" alt="" width="640" height="159" /></a><br />
Hoje tentaremos fazer jus ao slogan da biblioteca jQuery “Write less, do more” e faremos um menu drop down, com apenas 6 linhas de código JavaScript.</p>
<p><strong>Algumas explicações prévias:</strong></p>
<p>Ha algum tempo atrás, publiquei um post sobre como fazer um menu com jQuery, utilizando um método de evento do mouse (hover). Usaremos o mesmo método, mas de uma forma um pouco diferente. Por padrão o metodo .over(), espera duas funções como argumentos, uma para quando o mouse estiver em cima (over) e outra quando o mouse sair do ponto (out).  Neste menu utilizaremos o encadeamento de métodos do jQuery e solucionaremos com apenas uma função, utilizando o sliderToggle().</p>
<p><strong>HTML</strong></p>
<p>A estrutura HTML é bem simples. É uma &lt;ul&gt; com seus nós filhos &lt;li&gt;´s. Filiaremos os sub-menus, que também são estrutura de &lt;ul&gt; e &lt;li&gt;,  para fazer o nosso menu com sub-nível. O interessante é aprender o conceito, depois disto você poderá fazer a estrutura de várias formas e manipular DOM através do jQuery.</p>
<pre><code>&lt;ul&gt;
    &lt;li&gt;&lt;a href='#'&gt;Item um&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href='#'&gt;Sub-Item um / um&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href='#'&gt;Sub-Item um / dois&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href='#'&gt;Sub-Item um / três&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href='#'&gt;Sub-Item um / quatro&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href='#'&gt;Item dois&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href='#'&gt;Sub-Item dois / um&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href='#'&gt;Sub-Item dois / dois&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href='#'&gt;Sub-Item dois / três&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href='#'&gt;Sub-Item dois / quatro&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href='#'&gt;Item três&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href='#'&gt;Sub-Item três / um&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href='#'&gt;Sub-Item três / dois&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href='#'&gt;Sub-Item três / três&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href='#'&gt;Sub-Item três / quatro&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
   &lt;li&gt;&lt;a href='#'&gt;Item quatro&lt;/a&gt;
       &lt;ul&gt;
           &lt;li&gt;&lt;a href='#'&gt;Sub-Item quatro / um&lt;/a&gt;&lt;/li&gt;
           &lt;li&gt;&lt;a href='#'&gt;Sub-Item quatro / dois&lt;/a&gt;&lt;/li&gt;
           &lt;li&gt;&lt;a href='#'&gt;Sub-Item quatro / três&lt;/a&gt;&lt;/li&gt;
           &lt;li&gt;&lt;a href='#'&gt;Sub-Item quatro / quatro&lt;/a&gt;&lt;/li&gt;
       &lt;/ul&gt;
   &lt;/li&gt;
&lt;/ul&gt;</code></pre>
<p>O comportamento visual desta estrutura pode e deve ser feito com CSS, para deixar o menu mais atrativo. Não vou abordar css, pois não é o sentido deste post. O comportamento visual fica por sua conta e imaginação!</p>
<p><strong>jQuery</strong></p>
<p>A solução em 6 linhas:</p>
<pre><code>$(document).ready(function(){// quando o DOM estiver pronto execute
    $('li ul').hide();// Esconda os menus filhos de &lt;li&gt;
    $('li').hover(function(){// quando passar o mouse em cima da &lt;li&gt;
        $(this).find('ul:first').stop(true, true).slideToggle();// procure nesta li a primeira ul, se um evento estiver disparado ele para(.stop()) e alterne o slider.
    });
});</code></pre>
<p>A solução é bem simples. Eu digo com as palavras do jQuery que quando o documento tiver pronto &#8220;DOM todo lido e carregado pelo browser&#8221; (.ready), execute as tarefas abaixo. Primeiro esconda as ul´s filas de li,  e espere o evento do mouse (.hover), se alguém passar ponteiro do mouse em cima de alguma li, dispara a ação &#8220;o evento&#8221; para procurar nesta li que o mouse passou em cima, a primeira ul e, alterne o comportamento dela entre slide down e up, tornando o sub menu visível e não visível.</p>
<p>O (.stop()) é para corrigir o comportamento do .hover() que coloca os eventos na fila, e fica mostrando e escondendo, caso o usuários passe o mouse diversas vezes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.felipealbuquerque.com/2010/10/01/jquery-menu-drop-down-com-apenas-6-linhas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Menu Drop Down com jQuery</title>
		<link>http://www.felipealbuquerque.com/2010/03/25/menu-drop-down-com-jquery/</link>
		<comments>http://www.felipealbuquerque.com/2010/03/25/menu-drop-down-com-jquery/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 18:48:48 +0000</pubDate>
		<dc:creator>Felipe de Albuquerque</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[javaScript]]></category>
		<category><![CDATA[Menu dropDown]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.felipealbuquerque.com/?p=448</guid>
		<description><![CDATA[Vou descrever um menu drop down feito com XHTML, CSS e jQuery que ficará assim. É muito simples e os arquivos estão aqui. Este menu irá utilizar um método de evento do mouse &#8220;hover&#8221; e não permite navegação através de teclado, por tantanto ele não é acessível, mas caso seu objetivo seja um menu inclusivo]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-478" title="Menu Com jQuery" src="http://www.felipealbuquerque.com/wp-content/uploads/2010/03/MenuComjQuery.jpg" alt="Menu Com jQuery" width="640" height="159" /><br />
Vou descrever um menu drop down feito com XHTML, CSS e jQuery que <a title="Ver o menu funcionando" href="../downloads/Menu-Drop-Down-com-jQuery-FelipeAlbuquerque" target="_blank">ficará assim.</a><br />
É muito simples e <a title="Baixar os arquivos do menu" href="../downloads/Menu-Drop-Down-com-jQuery-FelipeAlbuquerque.rar" target="_blank">os  arquivos estão aqui.</a></p>
<p>Este menu irá utilizar um método de evento do mouse &#8220;<a title="Ler a referência no  site oficial do jQuery" href="http://api.jquery.com/hover/" target="_blank">hover</a>&#8221; e não permite navegação através de teclado, por tantanto ele não é acessível, mas caso seu objetivo seja um menu inclusivo leia um outro post onde eu descrevo um <a title="Ler o post sobre menu acessível" href="http://www.felipealbuquerque.com/2009/10/19/menu-drop-down-acessivel/" target="_self">menu drop down acessível</a>.</p>
<p>Primeiro vou criar o documento de marcação para o menu, que no caso será o XHTML.</p>
<pre><code>
&lt;div id="menu"&gt;&lt;span&gt;&lt;/span&gt;
   &lt;ul&gt;
      &lt;li&gt;&lt;a href="#"&gt;Item 1&lt;/a&gt;
         &lt;ul&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 1&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 2&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 3&lt;/a&gt;&lt;/li&gt;
         &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#"&gt;Item 2&lt;/a&gt;
         &lt;ul&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 1&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 2&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 3&lt;/a&gt;&lt;/li&gt;
         &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#"&gt;Item 3&lt;/a&gt;
         &lt;ul&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 1&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 2&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 3&lt;/a&gt;&lt;/li&gt;
         &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#"&gt;Item 4&lt;/a&gt;
         &lt;ul&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 1&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 2&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 3&lt;/a&gt;&lt;/li&gt;
         &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#"&gt;Item 5&lt;/a&gt;
         &lt;ul&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 1&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 2&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 3&lt;/a&gt;&lt;/li&gt;
         &lt;/ul&gt;
      &lt;/li&gt;
   &lt;/ul&gt;
&lt;span class="right"&gt;&lt;/span&gt;&lt;/div&gt;
</code></pre>
<p>Agora que os nós do menu estão feitos,  formato ele utilizando CSS.</p>
<pre><code>*{margin:0;padding:0}<span>//um reset básico, pra gente poder controlar melhor a página</span>
<span>//Os códigos CSS a baixo podem variar bastante, depende da sua necessidade e criatividade</span>
#menu{background:url(../Images/bg-menu.jpg) repeat-x; height:37px; width:80%; margin:20px auto}
#menu span{height:37px; width:5px; background:url(../Images/bg-menu-esq.jpg) no-repeat; float:left;}
#menu span.right{background:url(../Images/bg-menu-dir.jpg) no-repeat; float:right;}
#menu ul{position:relative;z-index:2;}
#menu li{float:left; list-style:none; display:inline;}
#menu a{text-decoration:none;display:block; font-size:12px; font-family:Arial;color:#000; padding:10px;}
#menu a:hover{text-decoration:none}
#menu ul li ul{position:absolute;z-index:1;background:#f5f8fd url(../Images/bg-sub-menu.jpg) repeat-x !important;border:1px solid #cfd7ea;border-top:none;
	-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;
	-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;}
#menu ul li ul li{float:none;display:block;padding:0 10px !important; border-top:1px solid #dbe2ec;}
#menu ul li ul li:hover{background:#e2ecf8;color:#26156E;}

</code></pre>
<p>Agora vamos ao que interessa, o jQuery</p>
<pre><code>
<span>/**
 * @author Felipe
 *Se for usar me avisa e comenta o post <img src='http://www.felipealbuquerque.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />
 */
</span>
$(document).ready(function(){

    $("ul li ul").hide();<span>//aqui eu escondo as ul´s que forem filhas de li.</span>
    $("ul li").hover(function(){<span>//O método hover recebe dois parametros que são duas funções.</span>
        $(this).find("ul:first").slideDown("slow"); <span>//aqui você faz o que quiser quando o mouse estiver em cima</span>

    }, function(){
        $(this).find("ul:first").slideUp("slow"); <span>//aqui é como se fosse o callback e você também faz o que quiser.</span></code></pre>
<p>O jQuery como você pode ver, é o arquivo mais simples e com poucas linhas de código.</p>
<p>Utilizamos o método hover que recebe dois parâmetros, que é referente a dois estados do mouse, o mouse hover e mouse down.  Em jQuery esse método pode receber duas funções como parâmetros, que é o que fizemos e após eu utilizo o <em>this</em> pra referenciar ao elemento que está sendo acionado e com o <a title="Ler a referência no site oficial do jQuery" href="http://api.jquery.com/find/" target="_blank"><em>find</em></a> peço pra ele procurar naquele elemento o elemento filho, no caso o primeiro ul que existir e por fim faço o <a title="Ler a referência no site oficial do jQuery" href="http://api.jquery.com/slideDown/" target="_blank">slideDown</a> e Up.<br />
Escolhi esconder o ul filho de li “o sub-menu” com o jQuery, por que se o javaScript estiver desabilitado ou por algum motivo não estiver funcionando, o usuário poderá ver o menu pois ele ficará aberto, se você optar em esconder o menu inicialmente com o CSS o seu menu poderá ficar inutilizável.</p>
<p>Essa foi uma demonstração de um menu simples e bem interessante, porém o jQuery tem plugns incríveis e se você quiser implementar um super menu, você poderá instalar algum plugin, como alguns que vou listar.</p>
<ul>
<li><a title="Ir ao site do plugin, superfish" href="http://users.tpg.com.au/j_birch/plugins/superfish/#examples" target="_blank">Superfish</a></li>
<li><a title="Ir ao site do plugin" href="http://www.filamentgroup.com/lab/jquery_ipod_style_drilldown_menu/" target="_blank">iPod-style Drilldown Menu</a></li>
<li><a title="Ir a página de plugins do jQuery" href="http://plugins.jquery.com/project/Plugins/category/44" target="_self">Plugins de menu no site do jQuery</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.felipealbuquerque.com/2010/03/25/menu-drop-down-com-jquery/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Menu Drop Down Acessível</title>
		<link>http://www.felipealbuquerque.com/2009/10/19/menu-drop-down-acessivel/</link>
		<comments>http://www.felipealbuquerque.com/2009/10/19/menu-drop-down-acessivel/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 19:20:24 +0000</pubDate>
		<dc:creator>Felipe de Albuquerque</dc:creator>
				<category><![CDATA[Acessibilidade]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[javaScript]]></category>
		<category><![CDATA[menu acessível]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.felipealbuquerque.com/?p=223</guid>
		<description><![CDATA[Soluções inclusivas, em minha opinião são vitais para profissionais não só da web. Entre tanto o que se vê por ai não é exatamente isso, mas se você está lendo este texto é porque você está há vários passos na frente de outros profissionais, e está com o pensamento certo e inclusivo. Esta solução de]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-240" title="Acessibilidadeda" src="http://www.felipealbuquerque.com/wp-content/uploads/2009/10/acessibilidadeda-menu.jpg" alt="Acessibilidadeda" width="640" height="238" /></p>
<p>Soluções inclusivas, em minha opinião são vitais para profissionais não só da web.</p>
<p>Entre tanto o que se vê por ai não é exatamente isso, mas se você está lendo este texto é porque você está há vários passos na frente de outros profissionais, e está com o pensamento certo e inclusivo.</p>
<p>Esta solução de menu acessível é muito fácil e funciona bem em vários navegadores como no IE6 + e em todos os browsers que dão suporte a web Standards. Funciona com teclado e mouse, e se o JavaScript estiver desabilitado dá pra acessar todos os links, mas os subitens não aparecem visualmente.</p>
<p>Veja <a title="Ver o exemplo funcionando" href="http://www.felipealbuquerque.com/menuAcessivel.html" target="_blank">o menu funcionando</a> e vamos aos detalhes:</p>
<h2>XHTML</h2>
<p>É o documento de marcação onde vamos criar os nós do menu.</p>
<p>Vamos criar uma lista não ordenada “ul” e seus respectivos filhos e adicionar id e classes para podermos manipular alguns elementos.</p>
<pre><code>
<span>&lt;!-- As tags como o DOCTYPE, head, body e demais não vou descrever aqui para o post ser mais objetivo --&gt;</span>
&lt;ul id="nav"&gt;
	&lt;li&gt;&lt;a href="index.html"&gt;Home&lt;/a&gt;&lt;/li&gt;
	&lt;li class="submenu"&gt;&lt;a href="#" class="bullet"&gt;Portfólio&lt;/a&gt;
		&lt;ul&gt;
			&lt;li&gt;&lt;a href="sites.html"&gt;Sites&lt;/a&gt;&lt;/li&gt;
			&lt;li class="submenu"&gt;&lt;a href="#" class="bullet"&gt;Interfaces&lt;/a&gt;
				&lt;ul&gt;
					&lt;li&gt;&lt;a href="graficas.html"&gt;Gráficas&lt;/a&gt;&lt;/li&gt;
					&lt;li&gt;&lt;a href="digitais.html"&gt;Digitais&lt;/a&gt;&lt;/li&gt;
				&lt;/ul&gt;
			&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;a href="quemsomos.html"&gt;Quem Somos&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="contato.html"&gt;Contato&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</code></pre>
<h2>CSS</h2>
<p>É o documento de apresentação, onde vamos posicionar e dar beleza ao nosso menu.</p>
<p>Aqui é onde você provavelmente ira mexer mais, para poder customizar seu menu acessível.</p>
<pre><code>
#nav, #nav ul {
	width: 70em;
	list-style: none;
	font: bold 12px Verdana, Arial, Helvetica, sans-serif;
	padding: 0;
	margin: 0;
 }
#nav li {
	float: left;
 }
#nav a {
	display: block;
	width: 10em;
	height: 2em;
	line-height: 2;
	text-align: center;
	text-decoration: none;
	background-color: #69c; /* IE precisa desta declaração */
	color: #fff;
	border: 1px solid #ccc;
	border-width: 0 1px 1px
 }
#nav a:hover {
	text-decoration: none;
	background: #c7daec;
	color:#69c;
 }
#nav a.bullet {
	background:#69c url(bullet.gif) no-repeat right;
 }
#nav a.bullet:hover {
	background: #c7daec url(bullet-over.gif) no-repeat right;
 }
#nav li ul {
	position: absolute;
	left: -1000em;
	width: 10em;
	margin: 0;
 }
#nav ul ul {
	margin: -2.1em 0 0 10.1em;
 }
#nav li:hover ul ul, #nav li.over ul ul {
	left: -1000em;
 }
#nav li:hover ul, #nav li li:hover ul, #nav li.over ul, #nav li li.over ul {
	left: auto;
}
</code></pre>
<h2>JavaScript</h2>
<p>O arquivo JavaScript é responsável pela ação.</p>
<p>É neste documento que vamos verificar os links e os subitens da lista e vamos fazer com que ele se encarregue em abrir os subitens.</p>
<pre><code>
&lt;script type="text/javascript"&gt;

var dropdown_intervalId;
var dropdown_ulId = (!dropdown_ulId) ? 'nav' : dropdown_ulId;
var dropdown_delay = (!dropdown_delay) ? 0 : dropdown_delay;

function dropdown_init()
{
 try
 {
  var as = document.getElementById(dropdown_ulId).getElementsByTagName('a');

  for (var a = 0; a &lt; as.length; a++)
  {
   as[a].onfocus = function() { dropdown_expand(this) }
   as[a].onmouseover = function() { dropdown_expand(this) }
   as[a].onblur = function() { dropdown_colapse(dropdown_delay) }
   as[a].onmouseout = function() { dropdown_colapse(dropdown_delay) }
  }

  dropdown_colapse(0);

 } catch(e){}

}

function dropdown_expand(caller)
{
 try
 {
  clearInterval(dropdown_intervalId);

  var uls = caller.parentNode.parentNode.getElementsByTagName('ul');

  for (var ul = 0; ul &lt; uls.length; ul++)
   uls[ul].style.left = "-1000em";

  caller.parentNode.getElementsByTagName('ul')[0].style.left = "auto";

 } catch(e){}

}

function dropdown_colapse(milliseconds)
{
 try
 {
  clearInterval(dropdown_intervalId);

  dropdown_intervalId = setInterval(function()
  {
   var uls = document.getElementById(dropdown_ulId).getElementsByTagName('ul');

   for (var ul = 0; ul &lt; uls.length; ul++)
    uls[ul].style.left = "-1000em";

   clearInterval(dropdown_intervalId);

  }, milliseconds, null);

 } catch(e){}

}

window.onload = dropdown_init;
&lt;/script&gt;

</code></pre>
<p>Esse menu foi tema de debate na lista <a title="Lista Acesso Digital" href="http://groups.google.com/group/acessodigital" target="_blank">Acesso Digital</a>, e esse post foi baseado na resposta do Gil Porta membro da lista, e o menu foi desenvolvido por <a href="http://www.alexandrejunqueira.com" target="_blank">Alexandre Junqueira</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.felipealbuquerque.com/2009/10/19/menu-drop-down-acessivel/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Contar caracteres com javaScript</title>
		<link>http://www.felipealbuquerque.com/2009/09/30/contar-caracteres-com-javascript/</link>
		<comments>http://www.felipealbuquerque.com/2009/09/30/contar-caracteres-com-javascript/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 18:02:33 +0000</pubDate>
		<dc:creator>Felipe de Albuquerque</dc:creator>
				<category><![CDATA[javaScript]]></category>

		<guid isPermaLink="false">http://www.felipealbuquerque.com/?p=134</guid>
		<description><![CDATA[Existe uma propriedade nativa do JavaScript chamada length que tem a função de contar. A sintaxe é muito fácil “String.length” onde string é o objeto que queremos contar e o length é quem se encarregará pela contagem. Obs: está propriedade também conta espaço em branco. Muito bom pra verificar se a senha foi digitada com]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-144" title="javaScript" src="http://www.felipealbuquerque.com/wp-content/uploads/2009/09/javascript.jpg" alt="javaScript"  width="640" height="246" /><br />
Existe uma propriedade nativa do JavaScript chamada length que tem a função de contar.</p>
<p>A sintaxe é muito fácil “String.length” onde string é o objeto que queremos contar e o length é quem se encarregará pela contagem.</p>
<p>Obs: está propriedade também conta espaço em branco. Muito bom pra verificar se a senha foi digitada com espaço em branco.</p>
<p>Vamos ver um exemplo simples.</p>
<pre><code>
&lt;script type="text/javascript" language="javascript"&gt;

   var caracteres = "Felipe não sabe de tudo, mas aprende um pouco a cada dia";

   var contar = caracteres.length;

   alert(contar);

&lt;/script&gt;
</code></pre>
<p>O resultado será um alert com o numero 56, contando com os espaços em branco, que ele interpreta como caracteres.</p>
<p>Agora eu quero que o nosso código varra a variável, e teste se existe a letra “e”, se achar vai informar que achou a letra “e”, senão ele vai dizer que não achou “e”,  e vai mostrar o caractere que achou.</p>
<pre><code>
&lt;script type="text/javascript" language="javascript"&gt;

 var caracteres = "Felipe";

     for(i=0; i&lt; caracteres.length; i++){

        if(caracteres[i] == "e" || caracteres[i] == "E" ){

           alert("Achei o " + caracteres[i]);

        } else {

           alert("Não achei e, encontrei o " + caracteres[i]);

        }

     }

&lt;/script&gt;

</code></pre>
<p>O resultado será uma serie de alerts até a condição ser satisfeita, e todos os caracteres serão contados e testados.</p>
<p>O ideal é trabalhar com DOM, e escrever no documento ao invés de alerts, mas como estamos apenas estudando a propriedade length, escolhi alert, mas você pode escolher um nó ou id do documento e escrever nele, Ex: screver = document.getElementById(&#8220;idOndeVoceQuerEscrever&#8221;).innerHTML = variável + “texto e tags”;</p>
<p>Mas isso é para próximos posts.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 729px; width: 1px; height: 1px;">|| caracteres[i] == E&#8221;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.felipealbuquerque.com/2009/09/30/contar-caracteres-com-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Progressive Enhancement</title>
		<link>http://www.felipealbuquerque.com/2009/09/25/progressive-enhancement/</link>
		<comments>http://www.felipealbuquerque.com/2009/09/25/progressive-enhancement/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 17:40:37 +0000</pubDate>
		<dc:creator>Felipe de Albuquerque</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[javaScript]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.felipealbuquerque.com/blog/?p=96</guid>
		<description><![CDATA[A melhoria progressiva é uma estratégia de web design que enfatiza a acessibilidade, a marcação semântica e estilo externo e tecnologias de script. Ela usa tecnologias da web em camadas que permite a todos o acesso a conteúdos e funcionalidades básicas de uma página web usando qualquer navegador ou ligação à Internet, fornecendo também aqueles]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-97" title="Progressive Enhancement" src="http://www.felipealbuquerque.com/wp-content/uploads/2009/09/progressive-enhancement.png" alt="Progressive Enhancement" /></p>
<p>A melhoria progressiva é uma estratégia de web design que enfatiza a acessibilidade, a marcação semântica e estilo externo e tecnologias de script.</p>
<p>Ela usa tecnologias da web em camadas que permite a todos o acesso a conteúdos e funcionalidades básicas de uma página web usando qualquer navegador ou ligação à Internet, fornecendo também aqueles com software de navegação mais largura de banda ou mais avançado de uma versão melhorada da página.</p>
<p>A estratégia é uma tentativa de subverter a estratégia de web design tradicional conhecida como degradação graciosa, onde designers iriam criar páginas Web para os navegadores mais recentes que também funcionam bem em versões antigas do navegador.</p>
<p>Degradação graciosa deveria permitir que a página de degradar ou manter-se apresentável, mesmo que certas tecnologias assumida pelo projeto não estava presente, sem ser brusco para o usuário do software, como mais velhos.</p>
<p>Na prática, a degradação graciosa foi suplantada por uma atitude que o usuário final deve apenas atualizar. Esta atitude é devido a limitações de tempo e orçamento, o acesso limitado a testes de software e browsers alternativos, bem como a crença generalizada de que os navegadores são gratuitos.</p>
<p><img class="alignleft size-medium wp-image-101" title="layered" src="http://www.felipealbuquerque.com/wp-content/uploads/2009/09/layered-300x180.gif" alt="layered" />No Progressive Enhancement (PE), a estratégia é deliberadamente invertida: um documento de marcação de base é criada, voltada para o menor denominador comum de funcionalidades de software de navegação e, em seguida, o designer adiciona funcionalidades ou melhorias para a apresentação e comportamento da página, utilizando tecnologias modernas, como Cascading Style Sheets ou JavaScript (ou outras tecnologias avançadas, como Flash ou Java applets ou SVG, etc ) Todas essas melhorias são ligados externamente, de modo a evitar forçar navegadores de menor capacidade para comer dados que eles não entendem e não pode lidar com, ou que teria pântano sua ligação à Internet.</p>
<p>A abordagem do PE é derivada da experiência precoce Pulido (C 1993-4) com SGML, antes de trabalhar com HTML ou qualquer linguagem de apresentação na Web, bem como das experiências mais trabalhar com CSS para resolver bugs do navegador.</p>
<p>Nesses contextos cedo SGML, marcação semântica foi de fundamental importância, visto que a apresentação foi quase sempre considerada separadamente em vez de ser incorporado na marcação própria. Este conceito pode ser referido nos meios de marcação como a regra da separação de apresentação e conteúdo, a separação entre conteúdo e estilo, ou de separação da semântica e da apresentação.</p>
<p>À medida que a Web evoluiu em meados dos anos noventa, mas antes da CSS foi introduzida e amplamente apoiada, esta regra básica do SGML foi repetidamente violada por extensores HTML.</p>
<p>Profissionais como Eric Costello, Owen Briggs, Dave Shea, entre outros, mostraram como usar o CSS para fins de layout.</p>
<p>Libertando os designers a usar tecnologias poderosas como o CSS para gerir todas as tarefas de apresentação, JavaScript para melhorar comportamento e XHTML para estrutura.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.felipealbuquerque.com/2009/09/25/progressive-enhancement/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

