Recentemente, um de nossos usuários nos perguntou como adicionar um efeito de aparecimento gradual para o último widget na barra lateral. Este popular efeito jQuery é usado em muitos sites e blogs conhecidos. Conforme o usuário rola a página, o último widget na barra lateral aparece gradualmente e se torna visível. A animação torna o widget chamativo e notável, o que aumenta drasticamente a taxa de cliques. Neste artigo, mostraremos como fazer o último widget da barra lateral aparecer gradualmente no WordPress usando jQuery.
Abaixo está uma demonstração de como ficaria:

Neste tutorial, você modificará os arquivos do seu tema. Recomenda-se que você faça backup do seu tema antes de prosseguir.
Passo 1: Adicionando JavaScript para o Efeito de Aparecimento Gradual
Primeiro, você precisa adicionar o código jQuery ao seu tema WordPress como um arquivo JavaScript separado. Comece abrindo um arquivo em branco em um editor de texto como o Bloco de Notas. Em seguida, salve este arquivo em branco como wpb_fadein_widget.js na sua área de trabalho e cole o seguinte código dentro dele.
jQuery(document).ready(function($) {
/**
* Configuration
* The container for your sidebar e.g. aside, #sidebar etc.
*/
var sidebarElement = $('div#secondary');
// Check if the sidebar exists
if ($(sidebarElement).length > 0) {
// Get the last widget in the sidebar, and its position on screen
var widgetDisplayed = false;
var lastWidget = $('.widget:last-child', $(sidebarElement));
var lastWidgetOffset = $(lastWidget).offset().top -100;
// Hide the last widget
$(lastWidget).hide();
// Check if user scroll have reached the top of the last widget and display it
$(document).scroll(function() {
// If the widget has been displayed, we don't need to keep doing a check.
if (!widgetDisplayed) {
if($(this).scrollTop() > lastWidgetOffset) {
$(lastWidget).fadeIn('slow').addClass('wpbstickywidget');
widgetDisplayed = true;
}
}
});
}
});
A linha mais importante neste código é var sidebarElement = $('div#secondary');.
Este é o id da div que contém sua barra lateral. Como cada tema pode usar divs de contêiner de barra lateral diferentes, você precisa descobrir o id do contêiner que seu tema está usando para a barra lateral.
Você pode descobrir isso usando a ferramenta de inspecionar elemento no Google Chrome. Simplesmente clique com o botão direito na sua barra lateral no Google Chrome e, em seguida, selecione Inspecionar Elemento.

No código-fonte, você poderá ver a div do seu contêiner de barra lateral. Por exemplo, o tema padrão Twenty Twelve usa secondary, e o Twenty Thirteen usa teritary como o ID para o contêiner da barra lateral. Você precisa substituir secondary pelo ID da sua div de contêiner de barra lateral.
Em seguida, você precisa usar um Cliente FTP para fazer o upload deste arquivo para a pasta js dentro do diretório do seu tema WordPress. Se o diretório do seu tema não tiver uma pasta js, você precisará criá-la clicando com o botão direito e selecionando ‘Criar Novo Diretório’ no seu cliente FTP.
Etapa 2: Enfileirando seu JavaScript no Tema WordPress
Agora que seu script jQuery está pronto, é hora de adicioná-lo ao seu tema. Usaremos o método correto de adição de JavaScript ao seu tema, então simplesmente cole o seguinte código no arquivo functions.php do seu tema.
wp_enqueue_script( 'stickywidget', get_template_directory_uri() . '/js/wpb-fadein-widget.js', array('jquery'), '1.0.0', true );
Isso é tudo, agora você pode adicionar um widget na sua barra lateral que deseja que apareça com o efeito fadein e, em seguida, visite seu site para vê-lo em ação.
Etapa 3: Tornando o Último Widget Fixo Após o Efeito Fade In
Um recurso frequentemente desejado com o efeito fade in é fazer com que o último widget da barra lateral role conforme o usuário rola. Isso é chamado de widget flutuante ou widget fixo.
Se você olhar o código jQuery acima, notará que adicionamos uma classe CSS wpbstickywidget ao widget após o efeito fade in. Você pode usar esta classe CSS para tornar seu último widget fixo após ele aparecer. Tudo o que você precisa fazer é colar este CSS na folha de estilo do seu tema.
.wpbstickywidget {
position:fixed;
top:0px;
}
Sinta-se à vontade para modificar o CSS para atender às suas necessidades. Você pode alterar a cor de fundo ou as fontes para tornar o widget ainda mais proeminente. Se desejar, você pode até adicionar um efeito de rolagem suave para o topo ao lado do seu último widget, o que permitirá aos usuários rolar de volta rapidamente.
Esperamos que este artigo tenha ajudado você a adicionar um efeito de fade in ao último widget na barra lateral do seu WordPress. Para mais recursos de jQuery, confira os melhores tutoriais de jQuery para WordPress.
Se você gostou deste artigo, por favor, inscreva-se em nosso Canal do YouTube para tutoriais em vídeo do WordPress. Você também pode nos encontrar no Twitter e Google+.

Roger Perkin
Estou tentando implementar isso no meu site, mas não está funcionando
2 Perguntas
você pode verificar meu site e verificar o ID da div da barra lateral?
Além disso, o script enqueue deve ser get_stylesheet_directory_uri() . e não get_template_directory
Obrigado – adoraria fazer isso funcionar
Roger
Jonathan
Eu estava me perguntando se isso pode ser feito em vez de fade in para fade out um widget fixo??
WPBeginner Support
Tente substituir fadeIn por fadeOut no JavaScript.
Admin
Johnny
Olá, estou tentando implementar isso na minha página e não consigo fazer funcionar. Adicionei o arquivo .js à pasta js do meu diretório de tema e o adicionei ao meu functions.php e nenhum fade está aparecendo. Onde exatamente devo adicioná-lo no meu functions.php, já que é um arquivo grande.
Estou usando o twenty fourteen, e o ID da minha barra lateral é “content-sidebar”, que alterei no arquivo .js. Tenho alguns outros widgets na barra lateral, então talvez algo esteja em conflito?
Qualquer ajuda é apreciada! Obrigado.
Johnny
Aqui está meu código .JS
jQuery(document).ready(function($) { /** * Configuração * O contêiner para sua barra lateral, por exemplo, aside, #sidebar etc. */
var sidebarElement = $(‘div#content-sidebar’);
// Verifica se a barra lateral existe if ($(sidebarElement).length > 0) {
// Obtém o último widget na barra lateral e sua posição na tela
var widgetDisplayed = false; var lastWidget = $(‘.widget:last-child’, $(sidebarElement)); var lastWidgetOffset = $(lastWidget).offset().top -100;
// Esconde o último widget $(lastWidget).hide();
// Verifica se a rolagem do usuário atingiu o topo do último widget e o exibe $(document).scroll(function() {
// Se o widget já foi exibido, não precisamos continuar verificando.
if (!widgetDisplayed) { if($(this).scrollTop() > lastWidgetOffset) { $(lastWidget).fadeIn(‘slow’).addClass(‘wpbstickywidget’); widgetDisplayed = true; } } }); } });
WPBeginner Support
Tente desativar todos os seus plugins e veja se funciona. Você também pode usar o inspecionar elemento para ver se há algum erro.
Admin
bb
Olá wpbeginner, eu amo este ajuste e a solução que você tem dado à comunidade, muito obrigado! Tenho uma pergunta, por favor, como posso integrar ou se existe um plugin/solução que possa ser usado para consultar formulários de inscrição submetidos por candidatos e o resultado aparecer no painel de administração, por exemplo; quantos candidatos têm menos de 25 anos? e o plugin deve buscar o resultado do banco de dados e mostrar os detalhes relevantes em um formato de tabela agradável que possa ser exportado para o Excel. Possível? Por favor, me aconselhe. Obrigado
Jean Gérard Bousiquot
Você pode verificar o Gravity Forms para isso, mas você precisará saber um pouco de PHP. Caso contrário, você terá que pagar um desenvolvedor para ajudá-lo a alcançar o que você precisa.
Derek Price
Isso não está um pouco fora do tópico? Você fez isso de propósito? Se você tem uma pergunta para a equipe do WP, por que não usar o recurso de contato para não tirar o post do blog do tópico?