Introdução
Neste laboratório, exploraremos como criar uma barra de progresso de rolagem usando HTML, CSS e JavaScript. A barra de progresso de rolagem é uma ótima maneira de indicar a posição atual do usuário na página e quanto conteúdo ainda resta para ser visto. Ao final deste laboratório, você terá uma melhor compreensão de como implementar esse recurso em seu site.
Barra de Progresso de Rolagem
index.html e style.css já foram fornecidos na VM.
Para criar uma barra de progresso que mostra a porcentagem de rolagem de uma página da web, siga estas etapas:
- Adicione um elemento
divcom oid"scroll-progress" ao código HTML. - No código CSS, defina a
positiondo elemento comofixed, otopcomo0, awidthcomo0%, aheightcomo4pxe a cor debackgroundcomo#7983ff. - Defina o valor de
z-indexpara um número grande para garantir que a barra de progresso seja colocada no topo da página e acima de qualquer conteúdo. - No código JavaScript, selecione o elemento
scroll-progressusando o métododocument.getElementById(). - Calcule a altura da página da web usando a fórmula
document.documentElement.scrollHeight - document.documentElement.clientHeight. - Adicione um ouvinte de evento (event listener) ao objeto
windowque escuta o eventoscroll. - Na função do ouvinte de evento, calcule a porcentagem de rolagem do documento usando a fórmula
(scrollTop / height) * 100. - Defina a
widthdo elementoscroll-progresspara a porcentagem de rolagem usando a propriedadestyle.
Aqui está o código:
<div id="scroll-progress"></div>
#scroll-progress {
position: fixed;
top: 0;
width: 0%;
height: 4px;
background: #7983ff;
z-index: 10000;
}
const scrollProgress = document.getElementById("scroll-progress");
const height =
document.documentElement.scrollHeight - document.documentElement.clientHeight;
window.addEventListener("scroll", () => {
const scrollTop =
document.body.scrollTop || document.documentElement.scrollTop;
scrollProgress.style.width = `${(scrollTop / height) * 100}%`;
});
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.
Resumo
Parabéns! Você concluiu o laboratório da Barra de Progresso de Rolagem. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.