Introducción
En este laboratorio, exploraremos cómo crear una barra de progreso de desplazamiento (scroll progress bar) utilizando HTML, CSS y JavaScript. La barra de progreso de desplazamiento es una excelente manera de indicar la posición actual del usuario en la página y cuánto contenido más queda por ver. Al final de este laboratorio, tendrás una mejor comprensión de cómo implementar esta función en tu sitio web.
Barra de progreso de desplazamiento (Scroll Progress Bar)
index.html y style.css ya se han proporcionado en la máquina virtual (VM).
Para crear una barra de progreso que muestre el porcentaje de desplazamiento de una página web, sigue estos pasos:
- Agrega un elemento
divcon elid"scroll-progress" al código HTML. - En el código CSS, establece la
positiondel elemento enfixed, eltopen0, elwidthen0%, laheighten4pxy el color debackgrounden#7983ff. - Establece el valor de
z-indexen un número grande para asegurarte de que la barra de progreso se coloque en la parte superior de la página y por encima de cualquier contenido. - En el código JavaScript, selecciona el elemento
scroll-progressutilizando el métododocument.getElementById(). - Calcula la altura de la página web utilizando la fórmula
document.documentElement.scrollHeight - document.documentElement.clientHeight. - Agrega un detector de eventos (event listener) al objeto
windowque escuche el eventoscroll. - En la función del detector de eventos, calcula el porcentaje de desplazamiento del documento utilizando la fórmula
(scrollTop / height) * 100. - Establece el
widthdel elementoscroll-progressal porcentaje de desplazamiento utilizando la propiedadstyle.
Aquí está el 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}%`;
});
Haz clic en 'Go Live' en la esquina inferior derecha para ejecutar el servicio web en el puerto 8080. Luego, puedes actualizar la pestaña Web 8080 para ver una vista previa de la página web.
Resumen
¡Felicidades! Has completado el laboratorio de la Barra de progreso de desplazamiento (Scroll Progress Bar). Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.