Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
O jQuery e outras bibliotecas javascript tornaram muito mais fácil adicionar pequenas
animações ao website. Não muito elaborado à lá Flash, mas o suficiente para tornar a
interação com as páginas muito mais interessante.
Neste tutorial será demonstrado como adicionar as animações através dos métodos
nativos do jQuery, aspectos das animações e também alguns plug-ins que adicionam
mais possibilidades nas animações feitas com o jQuery.
Preparativos
<p>Texto animado.</p>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js">
</script>
Crie um arquivo Javascript e importe ele no documento HTML logo após a linha de
importação do jQuery.
Opacidade
Este é um efeito suave que torna a navegação mais prazerosa. Dependendo da forma
que é feita, torna-se quase imperceptível ao mesmo tempo em que é responsável pelo
algo a mais no site.
É a animação mais básica que você pode adicionar a um link ou imagem Tanto, que o
CSS 3 traz a possibilidade de fazer isso diretamente nas folhas de estilo.
O jQuery oferece três métodos para trabalhar com a opacidade: fadeIn(), fadeOut() e
fadeTo(). O primeiro aumenta a opacidade, que é medida do 0 (invisível) ao 1 (visível),
a segunda diminui este número e com a terceira podemos trabalhar o intervalo entre
estes números.
$(function(){
$('p').fadeOut(200);
})
Ao invés de valores, você pode utilizar ‘fast’ ou ‘slow’ que se referem aos valores 200 e
600 respectivamente. Se não for configurado nenhum valor, a duração padrão é de 400
milissegundos.
$('p').fadeIn(‘slow’);
O fadeTo() permite um maior controle sobre a animação onde você pode definir além da
duração valores para a opacidade entre 0 e 1.
$('p').fadeTo(0.5,300);
O código anima faz com que o texto do parágrafo torne-se parcialmente transparente a
uma velocidade de 300 milissegundos.
Todos estes três métodos permitem que uma função seja executada ao final da animação
o que abre possibilidades para animações encadeadas.
$('p').fadeOut(200, function(){
alert('Término da animação.');
});
Altura
O slideToggle() para os casos em que não é possível saber se o elemento esta visível
(altura 100%) ou invisível (altura 0). Se ele estiver visível o slideToggle() aplica o
slideup(), caso contrário aplica o slideDown().
$('p').slideUp(1000, function(){
alert('Termino da animação.');
});
$('p').slideDown(1000);
$('p').slideToggle(1000);
animate()
A primeira informação a ser fornecida para o método são as propriedades CSS a serem
animadas. Vale margem, espaçamento, tamanho da fonte, largura, altura e outras que
aceitem número. Falando em número, se você informar apenas o número e não a
unidade de medida, será entendido que você se refere a pixels. Se você quiser utilizar
porcentagem, pode apenas lembra de colocar entre aspas: ‘150%’.
O easing permite que a progressão da animação ocorra de maneira não linear, um ponto
mais rápido ou mais vagaroso. Deixa a animação muito mais interessante. As opções
‘linear’ e ‘swing’ que vem por padrão com o jQuery não valem muito a pena. Então
você pode utilizar o plugin jQuery Easing Plugin que possibilita maior controle sobre
este aspecto das animações sendo totalmente integrável ao método.
$('p').animate({fontSize:50},500, function(){
$(this).animate({marginLeft:50},300);
);
Após aumentar o tamanho da fonte para 50 pixels, é iniciada outra animação deslocando
o texto 50 pixels da borda esquerda. Observe que a propriedade CSS é escrita em
camelCase.
$('p').animate({
opacity:0.2,
padding:10,
marginLeft:150,
width:'hide'
},'slow');
Diversas propriedades podem ser animadas ao mesmo tempo, sendo que altura, largura
e opacidade aceitam os valores show e hide.
Se você tiver importado o plugin jQuery Easing Plugin, os valores que ele oferece serão
postos após a duração:
$('p').animate({marginLeft:150},'slow','easeInCubic');
:animated
Não raro, alguns elementos são animados diversas vezes e nem sempre em sequencia
exata. Com o seletor :animated é possível atingir os elementos que estão sendo
animados.
$('p').animate({marginLeft:150},200);
$('p:animated').css({color:"#ff0000"});
Mais uma forma de chamar a atenção do visitante para alterações na página.
delay
As animações podem ser encadeadas tornando-se mais completas. Você pode engatar
um slideDown() a um fadeTo() e este a um animate(). Mas se por algum motivo você
quer que haja um intervalo entre eles, temos à mão o delay().
$('p').css({display:"none"}).slideDown().fadeTo(0.7,
'slow').delay(500).animate({marginLeft:50},300);
O texto foi escondido para podermos iniciar a animação. O texto então aparece com
efeito deslizante, tem a opacidade reduzida e então a fila para por meio segundo devido
ao delay(). E somente depois desse tempo o elemento de parágrafo tem a margem
esquerda alterada.
Adiconamos ao parágrafo um efeito em que o texto desliza alguns pixels para a direita
quando o mouse passar sobre o texto e depois ele volta a posição normal.
$('p').hover(function(){
$(this).animate({marginLeft:20},500)},
function(){
$(this).animate({marginLeft:0},500);
})
Para evitar este problema, basta adicionar stop() antes que a animação comece, com
isso, toda a animação que estiver acontecendo vai parar e a fila será reiniciada com a
animação atual.
$('p').hover(function(){
$(this).stop().animate({marginLeft:20},500)},
function(){
$(this).stop().animate({marginLeft:0},500);
})
Conclusão