Categories: jquerytodas

Menu em abas com jQuery

Inspirado em uma matéria publica por Guilherme Rambo desenvolvi um menu em abas do tipo revela conteúdos usando a biblioteca jQuery.
O Guilherme, autor da matéria na qual me inspirei, postou um fragmento de código sem estilizações e desprovido de qualquer cuidado com a acessibilidade, usando inclusive script in-line. E, certamente a intenção do Guilherme foi instigar seus leitores a pesquisar e modificando seu código torná-lo usável.
Ele usou um aproximação bastante interessante construindo fragmentos identificadores terminados com números (tipo: <a href="aba2">Aba2</a>) o que permite simplificação no script, pois possibilita usar o métodp jQuery index(seletor) para reter o índice do elemento clicado e modificar o número final do framento que aponta para o link.
O resultado final do menu que desenvolvi pode ser visto neste link onde você encontra os códigos usados.
Fique à vontade para comentar, sugerir e perguntar.

Maujor

View Comments

  • Muito legal! Já tinha visto o artigo no sreencaster mas ainda não consegui resolver o meu problema. Preciso de um menu em abas como esse mas tem que haver quebra de linha no texto da aba, so que dai não consigo deixar o css no jeito. Tem como ou teria que usar outra alternativa ao href?

    Obrigado pela atenção,
    Gustavo Ferreira.

  • Se eu passo o valor de ancora /#aba5 no link, ele imediatamente deveria abrir a aba 5, certo? Por que isto não funciona?

  • Jaydson
    Bem observado.
    Contudo, pelo fato de uma biblioteca facilitar determinada tarefa não significa que devemos usá-la.
    Antes de tudo é preciso analisar se vale a pena carregar a biblioteca para cumprir a tarefa.
    Dependendo do projeto é mais vantagem desenvolver um script personalizado.
    No caso do menu em abas, se jQueryUI vai ser carregada somente para simplificar a implementação do menu no site, então é melhor usar um script como o mostrado na matéria.

  • Acho interessante mostar para o pessoal iniciante como fazer um menu em tabs, porém acho útil ressaltar que esta funcionalidade já existe na jQuery UI.
    É bem simples de implementar, simples mesmo:

    $("#tabs").tabs();

    Pronto. Com isso ta feito o menu em abas.

    http://jqueryui.com/demos/tabs/

  • Cara, eu sou seu maior fan, suas dicas de CSS me ajudaram bastante, você foi sem saber um dos melhores professores que já tive, muito obrigado mesmo.

    Abraço

  • Tem como fazer este mesmo tipo de efeito sem jquery, só em javascript mesmo. Eu consegui algo próximo, porém não funciona.

  • Estou começando no ramo da web, mas por que admiro e amo a criação de sites, estou pela primeira vez agradecendo e parabenizando
    o Maurício pelo excelente trabalho, e pelos seus tutoriais maravilhosos
    nunca fiz um curso, porém com os tutoriais produzido pelo Maurício consegui desenvolver algum simples sites e abriu minha visão a ".css"
    agora estou tentando o css + java script , hoje tentei pela primeira vez aquele menu com abas e nao consegui mas vou tentar mas, mais tarde tento de novo leio com mais atenção,
    Parabéns pelo trabalho e essa força que voçê nos da com seus tutoriais, recomendo a todos.
    So peço uma coisa, eu sou do recife tenho 18anos admiro seus trabalhos e gostaria de comprar uns livros desses do maujor e gostaria de saber se não teria alguma revendedora por aqui pelo recife, e algum amigo seu que de aula de TI pois estou ansioso para começar e preciso de uma recomendação, Thx

  • Olá amigos,
    Realmente a biblioteca facilitou e simplificou muito a vida dos designers que se interessam por javascript não obstrusivo.

    Parabéns pelo artigo !

  • @Jura
    Sim, as abas podem ser figuras tal como se constroem abas com CSS e figuras sem jQuery.

    @Francisco
    A linha que você tem dúvida destina-se a fechar uma aba aberta quando o usuário clica para abrir outra e diz o seguinte:

    Encontre o elemento ancestral (parents) cuja ID é container_abas do link clicado (a) e selecione seus filhos (children) com a classe (.aba:visible ou seja as abas abertas) e esconda-os (hide())

Share
Published by
Maujor

Recent Posts

Teste seu conhecimento #20

Em 2006 comecei a publicar nesse blog uma série de desafios CSS que consistiam em…

7 anos ago

Teste seu conhecimento #19

Há muito tempo que eu não publico um "Teste seu conhecimento". Esta semana, revendo algumas…

9 anos ago

JavaScript bubbling e capturing

Introdução Elementos da marcação HTML podem ser aninhados uns dentro de outros, criando-se uma cadeia…

10 anos ago

HTML5 – W3C versus WHATWG

HTML5? Web universal? É comum eu me deparar com dúvidas sobre a HTML5 não só…

10 anos ago

Seria esse o futuro das imagens responsivas?

Quem é Tab Atkins Jr? Tab Atkins Jr, um desenvolvedor americano, trabalhou durante muitos anos…

10 anos ago

BrazilJS Conf 2013

Pessoal, a BrazilJS Conf 2013 disponibilizou para o Maujor cupons de desconto para serem oferecidos…

11 anos ago