Como combinar uma barra de progresso de rolagem com um menu de navegação fixo no Divi

Publicados: 2020-10-16

Os indicadores da barra de progresso podem adicionar um toque agradável ao seu site, aumentando a experiência do usuário com uma interação útil (e divertida). Normalmente, as barras de progresso ficam sozinhas na parte superior da página, sem muita conexão com o conteúdo real da página. O usuário simplesmente tem um indicador visual de onde está na página. Mas, hoje, vamos levar essa funcionalidade a outro nível.

Neste tutorial, vamos mostrar como combinar uma barra de progresso de rolagem com um menu de navegação fixo no Divi. Este design é o único que a barra de progresso se correlaciona com a largura dos botões do menu. E como a largura dos botões de menu é igual (em porcentagens) à altura das seções roláveis ​​de conteúdo na página, cada botão será preenchido pela barra de progresso de rolagem precisamente quando o usuário alcança a seção correspondente do botão. E se isso não for suficiente, faremos de cada botão um link de âncora para as seções correspondentes também, para um bônus de experiência do usuário adicional!

Esse design seria perfeito para conduzir o usuário a uma página de destino que descreve as etapas de um processo. Bem, você verá.

Vamos começar!

Espiada

Aqui está uma rápida olhada no design que construiremos neste tutorial.

Baixe o Layout GRATUITAMENTE

Para colocar suas mãos nos designs deste tutorial, primeiro você precisa fazer o download usando o botão abaixo. Para obter acesso ao download, você precisará se inscrever em nossa lista de e-mail Divi Daily usando o formulário abaixo. Como um novo assinante, você receberá ainda mais bondade Divi e um pacote Divi Layout grátis toda segunda-feira! Se você já está na lista, basta inserir seu endereço de e-mail abaixo e clicar em download. Você não será “reinscrito” nem receberá e-mails extras.

Baixe os arquivos
Download de graça

Download de graça

Junte-se ao Divi Newsletter e nós lhe enviaremos por e-mail uma cópia do último pacote de layout de página de destino Divi, além de toneladas de outros recursos, dicas e truques Divi incríveis e gratuitos. Acompanhe e você será um mestre Divi em nenhum momento. Se você já está inscrito basta digitar seu endereço de e-mail abaixo e clicar em download para acessar o pacote de layout.

Você se inscreveu com sucesso. Por favor, verifique seu endereço de e-mail para confirmar sua assinatura e tenha acesso a pacotes de layout Divi semanais gratuitos!

https://youtu.be/Kf-ciVKEZFI

Inscreva-se no nosso canal no Youtube

Para importar o layout da seção para sua biblioteca Divi, navegue até a biblioteca Divi.

Clique no botão Importar.

No pop-up de portabilidade, selecione a aba de importação e escolha o arquivo de download do seu computador.

Em seguida, clique no botão importar.

caixa de notificação divi

Feito isso, o layout da seção estará disponível no Divi Builder.

Vamos para o tutorial, vamos?

O que você precisa para começar

expandindo guias de canto

Para começar, você precisará fazer o seguinte:

  1. Se ainda não o fez, instale e ative o Divi Theme.
  2. Crie uma nova página no WordPress e use o Divi Builder para editar a página no front end (construtor visual).
  3. Escolha a opção “Build From Scratch”.

Depois disso, você terá uma tela em branco para começar a desenhar no Divi.

Parte 1: Criando o layout da página da seção de tela inteira

A seção superior

Para começar, adicione uma linha de uma coluna à seção.

barra de progresso de rolagem com menu fixo

Antes de adicionar um módulo, atualize as configurações de linha da seguinte maneira:

  • Largura: 100%
  • Largura máxima: 100%
  • Preenchimento: 0 px superior, 0 px inferior

barra de progresso de rolagem com menu fixo

Dentro da linha, adicione um módulo de texto.

barra de progresso de rolagem com menu fixo

Em seguida, abra as configurações do módulo de texto e cole o seguinte HTML para criar um título colorido:

<h2><span style="color: #00A4E0;">Let's</span><span style="color: #EE4266;>get</span style="color: #2a1e5c;>star</span><span style="color: #26c485;">ted</span></h2>

barra de progresso de rolagem com menu fixo

Na guia de design, atualize o alinhamento do texto para o centro.

barra de progresso de rolagem com menu fixo

A atualização dos seguintes estilos de título H2:

  • Fonte do título 2: Roboto
  • Título 2 Tamanho do texto: 6vw

barra de progresso de rolagem com menu fixo

Abra as configurações de seção e atualize a altura para 100 vh (ou 100% da janela de visualização / altura da janela). Isso fará com que a seção fique em tela inteira. Em seguida, retire o enchimento da seguinte forma:

  • Altura: 100vh
  • Preenchimento: 0 px superior, 0 px inferior

barra de progresso de rolagem com menu fixo

Para garantir que a linha / conteúdo dentro da seção permaneça centralizado verticalmente dentro da seção, adicione o seguinte CSS personalizado ao elemento principal da seção:

display:flex;
flex-direction:column;
justify-content:center;

barra de progresso de rolagem com menu fixo

Etapa Um Seção

A próxima seção no layout será a primeira de quatro etapas. É também a primeira seção para a qual nosso primeiro link de âncora de menu irá rolar.

Para criar a seção da primeira etapa, duplique a seção superior que acabamos de criar.

barra de progresso de rolagem com menu fixo

Em seguida, abra as configurações da seção duplicada e atualize a cor de fundo:

  • Cor de fundo: # 222222

barra de progresso de rolagem com menu fixo

Em seguida, abra as configurações de texto e substitua o corpo do texto pelo seguinte:

<h2>Step One...</h2>
Sed aliquet risus a urna aliquet blandit. Maecenas a scelerisque lorem. Sed commodo lectus sit amet felis rutrum, blandit elementum dui tincidunt. Nunc in tortor sit amet leo pharetra lobortis sed a velit. Fusce eu ante lacinia, gravida nibh id, semper lectus. Quisque lacinia rhoncus consectetur. 

barra de progresso de rolagem com menu fixo

Altere o alinhamento do texto para alinhado à esquerda.

barra de progresso de rolagem com menu fixo

Em seguida, atualize o seguinte:

  • Cor do texto do título 2: # 00a4e0
  • Largura máxima: 40vh (desktop), 80vh (tablet)
  • Alinhamento do Módulo: centro

barra de progresso de rolagem com menu fixo

Isso resolve a primeira seção.

Etapa Dois Seção

Para criar a seção da etapa dois, duplique a seção da etapa um que acabamos de criar.

barra de progresso de rolagem com menu fixo

Abra as configurações da seção e adicione um gradiente de fundo sobre a cor de fundo da seguinte maneira:

  • Cor de fundo gradiente esquerdo: rgba (255,255,255,0,85)
  • Cor de fundo do gradiente direito: rgba (255,255,255,0,85)

barra de progresso de rolagem com menu fixo

Em seguida, atualize a cor do título:

  • Cor do texto do título 2: # ee4266

barra de progresso de rolagem com menu fixo

O plano de fundo e a cor do título desta seção corresponderão às cores do botão que corresponde a esta seção no menu que criaremos mais tarde.

Etapa Três Seção

Para criar a seção da etapa três, duplique a seção da etapa dois e arraste-a para a parte inferior da página.

barra de progresso de rolagem com menu fixo

Em seguida, altere a cor do título do módulo de texto.

  • Cor do texto do título 2: # 26c485

barra de progresso de rolagem com menu fixo

Etapa Quatro Seção

Nossa etapa final é a etapa quatro. Para criar esta seção, duplique a seção da etapa dois e arraste-a para a parte inferior da página.

barra de progresso de rolagem com menu fixo

Em seguida, atualize o título do módulo de texto nessa seção.

  • Cor do texto do título 2: # 2a1e5c

barra de progresso de rolagem com menu fixo

Resultado

Aqui está o resultado do nosso layout até agora.

barra de progresso de rolagem com menu fixo

Parte 2: Criando a barra de progresso de rolagem e o menu

A próxima parte é onde finalmente criamos a barra de progresso de rolagem com nossos botões de menu. A ideia é adicionar uma seção fixa ao topo da página. Em seguida, dentro da seção, criaremos uma linha que contém um módulo divisor que servirá como nosso indicador de barra de progresso. No topo da linha com a barra de progresso, vamos adicionar outra linha que conterá nossos botões. Cada botão terá um fundo transparente (ou semitransparente) para revelar a barra de progresso atrás dele conforme o usuário rola a página para baixo.

Para começar, vamos criar a seção fixa no topo da página. Vá em frente e crie uma nova seção regular e arraste-a para o topo do layout da página.

barra de progresso de rolagem com menu fixo

Abra as configurações da seção e retire o preenchimento da seguinte forma:

  • Preenchimento: 0 px superior, 0 px inferior

barra de progresso de rolagem com menu fixo

Na guia avançado, atualize o seguinte:

  • Cargo: Fixo
  • Índice Z: 999

barra de progresso de rolagem com menu fixo

Isso garantirá que a seção permaneça fixa na parte superior da janela do navegador para facilitar a funcionalidade do link de âncora. Isso também garantirá que a seção saia do fluxo normal do documento / html e não aumente a altura do documento geral. Isso fará com que a barra de rolagem chegue ao final de cada botão exatamente quando o usuário atingir cada seção / etapa na página ao rolar.

Dentro da seção, adicione uma linha de uma coluna.

barra de progresso de rolagem com menu fixo

Abra as configurações de linha e atualize o seguinte:

  • Largura da calha: 1
  • Largura: 100%
  • Largura máxima: 100%
  • Preenchimento: 0 px superior, 0 px inferior
  • Posição: Absoluta

barra de progresso de rolagem com menu fixo

Abra as configurações de coluna e adicione o seguinte CSS personalizado ao elemento principal:

height: 100%;
display:flex;
align-items:center;

barra de progresso de rolagem com menu fixo

Isso garantirá que a coluna tenha a mesma altura da seção. Também permitirá que os módulos tenham uma altura de 100%. Isso será fundamental para garantir que a barra de progresso preencha a seção.

Para criar a barra de progresso, adicione um módulo divisor à coluna.

barra de progresso de rolagem com menu fixo

Em seguida, atualize as configurações do divisor da seguinte forma:

  • Mostrar divisor: NÃO
  • Cor de fundo: # 222222

barra de progresso de rolagem com menu fixo

  • Largura: 100%
  • Altura: 100%

barra de progresso de rolagem com menu fixo

NOTA: Estamos dando à barra de progresso uma largura de 100% aqui para que você possa vê-la dentro do design. Vamos aumentar e diminuir a largura da barra de divisão / progresso com JQuery.

Na guia avançada, adicione um ID CSS e dê a ele uma posição absoluta.

  • ID CSS: scrollBar
  • Posição: Absoluta

barra de progresso de rolagem com menu fixo

Adicionando o Indicador de Texto de Porcentagem

A seguir, adicionaremos um local para mostrar a porcentagem da posição de rolagem conforme o usuário rola a página para baixo. Isso se correlacionará com a largura da barra de progresso.

barra de progresso de rolagem com menu fixo

Sob a divisória, adicione um módulo de texto.

barra de progresso de rolagem com menu fixo

Em seguida, cole o seguinte HTML no corpo:

<p><span></span></p>

barra de progresso de rolagem com menu fixo

Nosso JQuery gravará o texto de porcentagem neste HTML (entre as tags span). Você não poderá ver nada agora.

Embora o texto em porcentagem ainda não esteja visível, ainda precisamos adicionar o seguinte estilo, antes que ele apareça.

  • Fonte do texto: Roboto
  • Estilo da fonte do texto: TT
  • Cor do texto do texto: #ffffff
  • Tamanho do texto do texto: 16px
  • Preenchimento: 0,8em na parte superior, 0,8 na parte inferior, 15 px à esquerda

barra de progresso de rolagem com menu fixo

Na guia avançado, atribua a ela uma classe CSS personalizada e desative-a no telefone e no tablet.

  • Classe CSS: et-progress-label
  • Desativar em: telefone, tablet

barra de progresso de rolagem com menu fixo

Embora não tenhamos terminado, este é um bom local para adicionar nosso código personalizado necessário para mostrar a barra de progresso de rolagem e a porcentagem.

Para adicionar o código, adicione um módulo de código abaixo do módulo de texto.

barra de progresso de rolagem com menu fixo

Em seguida, cole o seguinte código na caixa de código, certificando-se de envolvê-lo com as tags de script necessárias:

(function($) {
$(document).ready(function(){
var docHeight = $(document).height();
var winHeight = $(window).height();
var $scrollBar = $('#scrollBar');
var $progressLabel = $('.et-progress-label p span'); 
$scrollBar.css('width', 0);
$progressLabel.html('0%');
$(window).scroll(function(){
var winScrollTop = $(window).scrollTop();
var scrollPercentage = Math.abs(winScrollTop / (docHeight - winHeight)*100);
$scrollBar.css('width', (scrollPercentage + '%'));
$progressLabel.html( Math.round(scrollPercentage) + '%');
});
});
})( jQuery );

barra de progresso de rolagem com menu fixo

Isso cuida da barra de progresso e do texto percentual. Vamos avançar no menu de navegação.

Construindo os botões do menu com links de âncora

Agora estamos prontos para construir o menu de navegação que incluirá quatro botões que ocupam toda a largura do navegador. Achei que seria legal ter a barra de rolagem preenchendo cada botão conforme o usuário alcança a seção correspondente para a qual ele está vinculado. Aqui está a ideia. Cada botão terá uma largura de 25% da largura total do navegador. E uma vez que nossas quatro seções têm a mesma altura (100vh), cada uma das quatro seções representa 25% da área rolável total do layout da página. Isso garantirá que a barra de progresso chegue ao final de cada botão precisamente à medida que a seção correspondente preenche a janela de visualização. Você pegou isso? Se não, espero que faça mais sentido mais tarde.

A linha e a coluna

Para criar os botões de menu, primeiro, precisamos criar uma linha de quatro colunas abaixo da linha que contém a barra / divisor de progresso.

barra de progresso de rolagem com menu fixo

Abra as configurações de linha e atualize o seguinte:

  • Largura da calha: 1
  • Largura: 100%
  • Largura máxima: 100%
  • Preenchimento: 0 px superior, 0 px inferior

barra de progresso de rolagem com menu fixo

Para garantir que as colunas sejam empilhadas no celular, precisamos adicionar o seguinte CSS personalizado ao elemento principal:

display:flex;
flex-wrap:nowrap;

barra de progresso de rolagem com menu fixo

Botão de primeiro passo

Para criar o primeiro botão, adicione um módulo de botão na coluna da extrema esquerda.

barra de progresso de rolagem com menu fixo

Atualize o texto do botão e o URL do link da seguinte maneira:

  • Texto do botão: Etapa 1
  • URL do link do botão: #one
    (este link de âncora irá pular a seção com o ID CSS correspondente que adicionaremos mais tarde)

barra de progresso de rolagem com menu fixo

Em seguida, atualize os estilos de botão da seguinte maneira:

  • Alinhamento do botão: Centro
  • Tamanho do texto do botão: 20 px (desktop), 14 px (tablet)
  • Cor de fundo do botão: transparente
  • Largura da borda do botão: 0 px
  • Raio da borda do botão: 0 px
  • Espaçamento entre letras dos botões: 0.2em
  • Fonte do botão: Roboto
  • Estilo da fonte do botão: TT
  • Preenchimento: 0,8em superior, 0,8em inferior, 0 esquerdo, 0 direito

barra de progresso de rolagem com menu fixo

Para fazer com que o botão ocupe toda a largura da coluna, adicione o seguinte CSS personalizado ao elemento principal:

display:block !important;
width: 100%;

barra de progresso de rolagem com menu fixo

Botão da Etapa 2

Para criar o botão da etapa dois, duplique o botão na coluna um e arraste-o para a coluna 2.

Em seguida, atualize o seguinte:

  • Cor do texto do botão: # ee4266
  • Cor de fundo do botão: rgba (255,255,255,0,85)

A cor de fundo semitransparente será combinada com a cor preta da barra de progresso (atrás dela) para coincidir com o fundo da seção da etapa dois correspondente.

barra de progresso de rolagem com menu fixo

Em seguida, atualize o URL do link do botão com o seguinte:

  • URL do link do botão: #two

barra de progresso de rolagem com menu fixo

Botão da Etapa 3

Para criar o botão da etapa 3, duplique o botão da etapa 1 (ele tem a mesma cor bg) e arraste-o para a coluna 3.

Em seguida, atualize a cor do texto do botão:

  • Cor do texto do botão: # 26c485

barra de progresso de rolagem com menu fixo

Em seguida, atualize o URL do link do botão com o seguinte:

  • URL do link do botão: #three

barra de progresso de rolagem com menu fixo

Botão da Etapa 4

Para criar o botão da etapa 3, duplique o botão da etapa 2 (ele tem a mesma cor bg) e arraste-o para a coluna 4.

Em seguida, atualize a cor do texto do botão:

  • Cor do texto do botão: # 2a1e5c

barra de progresso de rolagem com menu fixo

Em seguida, atualize o URL do link do botão com o seguinte:

  • URL do link do botão: #four

barra de progresso de rolagem com menu fixo

Adicionando IDs CSS de seção correspondentes para links âncora

Assim que os botões forem concluídos e todos tiverem seus URLs de link de âncora, podemos adicionar os IDs CSS da seção correspondente a cada seção para a qual queremos que cada botão salte na página.

Etapa um ID de CSS da seção

Abra as configurações da seção da etapa um e adicione o seguinte ID CSS:

  • ID CSS: um

barra de progresso de rolagem com menu fixo

Etapa Dois Seção ID CSS

Abra as configurações da seção da etapa dois e adicione o seguinte ID CSS:

  • ID CSS: dois

barra de progresso de rolagem com menu fixo

Etapa três seção CSS ID

Abra as configurações da seção da etapa três e adicione o seguinte ID CSS:

  • ID CSS: três

barra de progresso de rolagem com menu fixo

Etapa Quatro Seção CSS ID

Abra as configurações da seção da etapa quatro e adicione o seguinte ID CSS:

  • ID CSS: quatro

barra de progresso de rolagem com menu fixo

Resultado final

Pensamentos finais

Este menu da barra de progresso é definitivamente um design único com potencial para uma variedade de aplicações. Esperançosamente, isso o ajudará em seu próximo projeto. E fique à vontade para explorar as inúmeras variações de design disponíveis no Divi builder para criar seu próprio menu de barra de progresso.

Estou ansioso para ouvir de você nos comentários.

Saúde!