Introdução aos Efeitos

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Bem-vindo à documentação do jQuery! Este laboratório irá fornecer uma introdução aos efeitos.

O jQuery torna trivial adicionar efeitos simples à sua página. Os efeitos podem usar as configurações embutidas ou fornecer uma duração personalizada. Você também pode criar animações personalizadas de propriedades CSS arbitrárias.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 100%. Recebeu uma taxa de avaliações positivas de 92% dos estudantes.

Mostrar e Ocultar Conteúdo

index.html já foi fornecido na VM.

O jQuery pode mostrar ou ocultar conteúdo instantaneamente com .show() ou .hide():

// Instantaneamente ocultar todos os parágrafos
$("p").hide();

// Instantaneamente mostrar todas as divs que possuem a classe de estilo hidden
$("div.hidden").show();

Quando o jQuery oculta um elemento, ele define sua propriedade CSS display como none. Isso significa que o conteúdo terá largura e altura zero; não significa que o conteúdo simplesmente se tornará transparente e deixará uma área vazia na página.

O jQuery também pode mostrar ou ocultar conteúdo por meio de efeitos de animação. Você pode dizer a .show() e .hide() para usar a animação de algumas maneiras. Uma delas é passar um argumento de 'slow', 'normal' ou 'fast':

// Lentamente ocultar todos os parágrafos
$("p").hide("slow");

// Rapidamente mostrar todas as divs que possuem a classe de estilo hidden
$("div.hidden").show("fast");

Se você preferir um controle mais direto sobre a duração do efeito de animação, pode passar a duração desejada em milissegundos para .show() e .hide():

// Ocultar todos os parágrafos em meio segundo
$("p").hide(2000);

// Mostrar todas as divs que possuem a classe de estilo hidden em 1,25 segundos
$("div.hidden").show(1250);

A maioria dos desenvolvedores passa um número de milissegundos para ter um controle mais preciso sobre a duração.

Por favor, clique em 'Go Live' no canto inferior direito para executar o serviço web na porta 8080. Em seguida, você pode atualizar a aba Web 8080 para visualizar a página web.

Alterando a Exibição com Base no Estado de Visibilidade Atual

O jQuery também pode permitir que você altere a visibilidade de um conteúdo com base em seu estado de visibilidade atual. .toggle() mostrará o conteúdo que está atualmente oculto e ocultará o conteúdo que está atualmente visível. Você pode passar os mesmos argumentos para .toggle() que você passa para qualquer um dos métodos de efeitos acima.

// Alternar instantaneamente a exibição de todos os parágrafos
$("p").toggle();

// Alternar a exibição de todas as divs em 1,8 segundos
$("div").toggle(1800);

.toggle() usará uma combinação de efeitos de slide e fade, assim como .show() e .hide() fazem.

Você pode atualizar a aba Web 8080 para visualizar a página web.

Algo Após a Conclusão de uma Animação

Um erro comum ao implementar efeitos jQuery é assumir que a execução do próximo método em sua cadeia aguardará até que a animação seja executada até a conclusão.

$("div.hidden").fadeIn(1500).addClass("lookAtMe");

É importante perceber que .fadeIn() acima apenas inicia a animação. Uma vez iniciada, a animação é implementada alterando rapidamente as propriedades CSS em um loop setInterval() do JavaScript. Quando você chama .fadeIn(), ele inicia o loop de animação e, em seguida, retorna o objeto jQuery, passando-o para .addClass(), que então adicionará a classe de estilo lookAtMe enquanto o loop de animação está apenas começando.

Para adiar uma ação até que uma animação seja executada até a conclusão, você precisa usar uma função de callback de animação. Você pode especificar seu callback de animação como o segundo argumento passado para qualquer um dos métodos de animação discutidos acima. Para o trecho de código acima, podemos implementar um callback da seguinte forma:

// Fade in todos os parágrafos ocultos; em seguida, adicione uma classe de estilo a eles (correto com o callback de animação)
$("div.hidden").fadeIn(1500, function () {
  // this = elemento DOM que acabou de terminar de ser animado
  $(this).addClass("lookAtMe");
});

Observe que você pode usar a palavra-chave this para se referir ao elemento DOM que está sendo animado. Observe também que o callback será chamado para cada elemento no objeto jQuery. Isso significa que, se seu seletor não retornar nenhum elemento, seu callback de animação nunca será executado! Você pode resolver esse problema testando se sua seleção retornou algum elemento; caso contrário, você pode simplesmente executar o callback imediatamente.

// Execute um callback mesmo que não houvesse elementos para animar
var someElement = $("#nonexistent");

var cb = function () {
  console.log("done!");
};

if (someElement.length) {
  someElement.fadeIn(300, cb);
} else {
  cb();
}

Você pode atualizar a aba Web 8080 para visualizar a página web.

Resumo

Parabéns! Você concluiu o laboratório de Introdução aos Efeitos. Para saber mais sobre a API jQuery, consulte a documentação oficial do jQuery.