webmaster

Efeitos Estilo Flash Em Menu Com jQuery

Olá, Somos criadores de conteúdo apaixonados por web design, programação, criação de websites e tecnologias digitais. O nosso website está online! Explore a nova versão beta, onde terá acesso a novos recursos e melhorias. A sua experiência e feedback são muito importantes para nós! Novos artigos, todas as semanas! Fique atento.
Artigos SEO

Artigos SEO

Search Engine Optimization

Artigos WordPress

Criação de websites.

Tutoriais

Ensino numa série de passos simples

Efeitos Estilo Flash Em Menu Com jQuery

Uma página com efeitos fica muito mais interessante para o visitante. E nem precisa ser um efeito elaborado, qualquer movimento, troca de imagem já adiciona uma magia. Na estrutura da página, o local mais apto para aplicar efeitos é o menu. Para ser mais exato, essa é uma região que praticamente DEVE apresentar efeitos.

A dupla javascript + css nunca foi muito boa nessa tarefa de adicionar o efeito ‘wow’. O Flash que é o rei do pedaço. O cenário começou a mudar com o lançamento da biblioteca jQuery e continua a evoluir com o surgimento de plugins.

Neste tutorial vamos explorar algumas possibilidades oferecidas pelo plugin Background-Position Animation Plugin. A grande possibilidade trazida por ele é a de animar a posição da imagem de fundo do elemento.

efeitos jquery

Veja aqui a DEMO dos exemplos práticos apresentados > Efeitos Estilo Flash Em Menu Com jQuery

Preparativos

Antes de começar a diversão precisamos construir a estrutura base dos menus, criar umas imagens e importar arquivos.

Ao todo serão necessárias quatro imagens que você pode ver abaixo. Não se preocupe em recriá-las, basta fazer o download no final do tutorial.

imagens

Também será preciso a última versão o jQuery e o plugin apresentado acima. Para fins de organização foram criados arquivos para a folha de estilo e código javascript. No final, o cabeçalho da página fica assim:




A estrutura básica dos menus será:

Aplicação Do Plugin

Depois de importado na página a utilização do plugin é integrada com o método animate(). Então além das tantas propriedades possíveis de animar, como a largura, tamanho da fonte, surge também a posição da imagem de fundo.

$(this).stop().animate({backgroundPosition: '0 0'});

O primeiro valor é relativo à margem esquerda, sendo negativo ele vai ainda mais para a esquerda. O segundo valor é a margem superior.

Um detalhe a ser observado é que a propriedade ‘background-position’ deve ser definida antes da aplicação do animate(). E não vale fazer isso na folha de estilo, tem que ser inline, que por sua vez pode ser feito direto no código javascript. Isso parece que ocorre devido a um bug nas versões antigas do Firefox e Internet Explorer.

Vamos para o primeiro exemplo de utilização.

Efeito Deslizante

Começamos adicionando um efeito em que a imagem de fundo desliza parte da esquerda e ocupada toda a área do item do menu. Um efeito comum em menus criados com Flash.

A estrutura HTML do menu é a que vimos anteriormente. Na estilização vou mostrar apenas o que é necessário para o funcionamento do efeito.

ul.tarja li {padding:5px; background:url(bgamarelo.gif) no-repeat 0 -400px;}

O posicionamento da imagem de fundo é feita com o background-position ao invés de usar (top, left..). Desta forma o efeito funciona como o esperado. Sendo que a posição precisa ser declarada novamente no javascript, defini-la na folha de estilo é facultativo.

O código javascript fica:

$('ul.tarja li').css({backgroundPosition: "-400px 0"}).hover(function(){
$(this).stop().animate({backgroundPosition: '0 0px', paddingLeft:'20px'});
}, function(){
$(this).stop().animate({backgroundPosition: '-400px 0', paddingLeft:0});
})

A primeira coisa a ser feita é definir o ‘background-position’. Em seguida observa-se o evento hover(), quando ocorrer, o item do menu que recebeu a seta do mouse (this) tem a imagem de fundo animada e desliza para a direita para melhorar o resultado final. O stop() é para evitar repetição descontrolada do efeito.

Na função seguinte, que entra em ação quando o mouse sai de sobre o elemento, os valores simplesmente retornam aos números anteriores ao efeito.

Para fazer o efeito em que o fundo desça ao invés de deslizar para a direita, basta uma pequena troca na folha de estilo:

ul.tarja li{ position:relative; float:left;}

E alteração dos valores no efeito:

$('ul.tarja li').css({backgroundPosition: "0 -100px"})
.hover(function(){
$(this).stop().animate({backgroundPosition: '0 0'});
}, function(){
$(this).stop().animate({backgroundPosition: '0 -100px'});
})

Transição Da Cor De Fundo

Outro efeito muito interessante, justamente por ser sutil é a alteração na cor de fundo do item. Do branco ele muda suavemente para o azul.

Primeiro é preciso criar uma imagem gradiente da cor de partida para a cor final. Neste tutorial vamos usar do branco para o azul.

ul.transicao li{background:url(transicao.gif) repeat-x; padding:10px;}

Definida a imagem de fundo, basta escrever o código javascript, que é semelhante ao feito no outro efeito.

$('ul.transicao li').css({backgroundPosition: "0 0"})
.hover(function(){
$(this).stop().animate({backgroundPosition: '0px -150px'});
}, function(){
$(this).stop().animate({backgroundPosition: '0 0'});
})

A imagem de fundo simplesmente desliza e assim é atingido o objetivo do efeito. Simples e rápido.

Definindo Mais De Uma Posição

O plugin permite que seja definido mais de um valor para o background-position. Eles são então executados na sequencia em que são escritos. Isso abre uma gama de possibilidades. Vamos a uma delas.

Uma descrição do efeito desejado: A estrela surge no topo, faz um movimento diagonal para a direita, e como se batesse em uma parede, finaliza o movimento no meio do espaço disponível, logo acima do item do menu.

ul.estrela li {float:left; position:relative; margin-right:30px; padding:50px 10px 0 10px; background:url(estrela-bg.png) no-repeat;}

Os itens do menu são flutuados à esquerda com margem para criar distância, um espaçamento superior para que o movimento de descida da estrela fique visível, e a imagem de fundo.

$('ul.estrela li').css({backgroundPosition: "-10px -60px"})
.hover(function(){
$(this).stop().animate({backgroundPosition: '0px -30px'},200).animate({backgroundPosition: '-10px -20px'},200);
}, function(){
$(this).stop().animate({backgroundPosition: '-10px -60px'});
})

A imagem de fundo é posicionada e se o mouse passar ou parar sobre o elemento começa a ação. O encadeamento ocorre pela adição do ponto entre os métodos animate(). E pronto, temos um efeito.

Conclusão

A simplicidade na aplicação do efeito é incrível. E usando a imaginação é possível criar efeitos bastante interessantes. Nos arquivos para download existem mais algumas variantes dos menus mostrados aqui.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)

Deixe o seu comentário, participe!

9 Responses

Leave a Reply

Your email address will not be published. Required fields are marked *


Versão Beta

Estamos a mudar

Olá, Somos criadores de conteúdo apaixonados por web design, programação, criação de websites e tecnologias digitais. Ajudamos os nossos clientes a levar o conteúdo certo às pessoas certas, criando artigos e recursos que facilitam a criação e otimização de websites.

Artigos Populares

Guia Prático Sobre Segurança Do Joomla

Dicas para diminuir substancialmente o número de vetores de ataque ao Joomla! Proteja o seu trabalho!

Os Segredos Do Sucesso Na Internet

A responsabilidade. O querer. O erro e a experimentação. O social. A memória da internet. Ser quem você é.

38 Ideias Espetaculares Para Sites De Empresas

Encontre inspiração nestes 45 exemplos de sites de empresas para criar o site da sua empresa.