Como fazer o último widget da barra lateral no WordPress aparecer gradualmente usando jQuery

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:

Fade in no último widget da barra lateral no WordPress

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.

Encontrando o ID do contêiner da barra lateral no código fonte

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+.

Aviso: Nosso conteúdo é apoiado pelos leitores. Isso significa que, se você clicar em alguns de nossos links, poderemos ganhar uma comissão. Veja como o WPBeginner é financiado, por que isso importa e como você pode nos apoiar. Aqui está nosso processo editorial.

O Kit de Ferramentas Definitivo para WordPress

Obtenha acesso GRATUITO ao nosso kit de ferramentas - uma coleção de produtos e recursos relacionados ao WordPress que todo profissional deve ter!

Interações do Leitor

9 CommentsLeave a Reply

  1. 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

  2. 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.

    • 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; } } }); } });

  3. 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

    • 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?

Deixe uma resposta

Obrigado por escolher deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de comentários, e seu endereço de e-mail NÃO será publicado. Por favor, NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.