Créer une barre de progression de lecture

Que vous ayez un blog ou des contenus à lire, proposer une barre de progression de lecture est véritablement nécessaire pour le confort de vos utilisateurs. Cet article va vous apprendre comment faire !
•
Mis à jour le 14 août 2026
•
2 min de lecture
Believemy logo
Créer une barre de progression de lecture

Que vous ayez un blog ou des contenus à lire, proposer une barre de progression de lecture est véritablement nécessaire pour le confort de vos utilisateurs. Cet article va vous apprendre comment faire !

Vous pouvez retrouver l'ensemble de ce tutoriel sur notre compte Instagram.

 

1ère étape

Le code HTML pour placer la barre de progression.

HTML
<div class="progress_bar"></div>

Une simple classe suffit dans le HTML. Pour ce qui est du contenu, vous pouvez utiliser lipsum.com pour trouver du faux texte.

 

2ème étape

Stylisons maintenant la barre de progression.

CSS
.progress_bar {
  height: 10px;
  background: orange;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  box-shadow: 0 0 10px rgba(0, 0, 0, .1);
}

Ici, nous plaçons la barre de progression en position fixed pour qu'elle reste toujours en haut de l'écran.

En précisant top, left et right, on demande à ce qu'elle occupe toute la largeur.

 

3ème étape

Notre barre de progression est placée, elle a été stylisée, occupons-nous donc du JavaScript.

JAVASCRIPT
const progressBar = document.querySelector('.progress_bar');
progressBar.style.display = "none";

window.addEventListener('scroll', handleScroll);

function handleScroll() {
  progressBar.style.display = "block";
  const height = document.body.scrollHeight; // taille du site
  const windowHeight = window.innerHeight; // taille de l'affichage
  const position = window.pageYOffset; // la position en pixels du document
  
  const trackLength = height - windowHeight; // taille du site - la partie affichée sur l'écran en ce moment (exemple : 1000px)
  
  const percentage = 
        Math.floor((position / trackLength) * 100); // pourcentage du site déjà parcouru
  
  progressBar
      .style.right = 100 - percentage + '%';
}

Grâce à addEventListener, on éxecute la fonction handleScroll à chaque mouvement du scroll sur le navigateur (avec l'objet window).

On calcul ensuite la différence entre la hauteur du document (height) et la hauteur de l'écran de l'utilisateur (windowHeight), pour détecter le pourcentage affiché.

On décale ensuite la barre de progression de x% selon le contenu qu'il reste à afficher.

Si vous souhaitez disposer d'une barre de progression de lecture avancée, avec l'affichage du pourcentage restant à lire, vous pouvez retrouver une démonstration avec le code source associé ici  : voir la version améliorée

Catégorie : Développeurs

Partager cet article

Tu veux nous aider ? Fais un lien vers cet article sur tes réseaux ou encore mieux : sur ton site, dans un article ou dans ta newsletter.

Believemy logo
Commentaires (0)

Vous devez être connecté pour commenter cet article : se connecter ou s'inscrire.

À lire ensuite

Créer un menu qui s'étend sur toute la page avec CSS

Il nous arrive de temps en temps de devoir demander à notre visiteur sur quelle page il veut aller, en lui affichant les principales sections de notre site internet. Ce menu n'est pas souvent très agréable à utiliser, découvrons ensemble dans cet article comment faire pour le rendre beaucoup plus moderne avec de belles animations qui donneront à vos passants l'envie de visiter votre site !

19 novembre 2020

Créer un effet de rotation du texte

Pour rendre votre site plus attractif, vous pouvait ajouter cet effet sympa, qui permettra d'afficher plusieurs mots qui vont se succéder avec un effet de suppression et de réécriture en boucle. Cet effet pourra être placé à la fin d'une phrase comme dans un texte.

19 novembre 2020

Jouer avec les flous et les filtres sur des cartes de présentation

Vous recherchez un moyen d'afficher les derniers articles de votre blog ou encore vos derniers projets de manière moderne et animée ? Ces cartes iront parfaitement avec votre site internet ! Découvrons comment les réaliser.

23 février 2021

Créer une scrollbar personnalisée

Et si on regardait comment créer une scrollbar personnalisée ? C'est tout le but de cet article !

10 juin 2020

Faire une flèche qui s'agrandit au survol

Que ce soit pour donner envie à vos utilisateurs de voir votre projet, de lire votre article ou d'accéder à une page de votre site internet, présenter votre lien avec une flèche vous permettra d'attirer plus facilement l'oeil de vos visiteurs ! Découvrons dans cet article comment animer cette flèche pour sublimer l'expérience de vos lecteurs.

18 novembre 2020

Créer un compteur en live d'abonnés Instagram

Voici comment créer un compteur en live d'abonnés Instagram, qui s'actualise automatiquement toutes les secondes ! Très utile pour vos sites internet ! On utilise pour ça la toute dernière nouveauté de JavaScript : fetch !

3 juillet 2020

Faire de la coloration syntaxique avec HTML et CSS

Si vous avez un blog ou un portfolio sur lequel vous souhaitez présenter des codes, que ce soit des extraits de code HTML / JavaScript ou encore CSS, vous avez très certainement dû vous confronter à un problème : comment activer la coloration syntaxique pour faire comme si nous avions mis le code dans un éditeur de code ? Voyons dans cet article comment faire ensemble.

26 novembre 2020

Faire un message de notification animé

Que ce soit pour prévenir rapidement vos utilisateurs qu'une fonctionnalité de votre site n'est pas encore disponible ou pour les prévenir qu'une action a été réalisée avec succès, les notifications sont le moyen le plus simple et moderne à mettre en place. Découvrons dans cet article comment faire !

25 novembre 2020

Devenez le solopreneur que vous rêvez d'être.

Premier projet, reconversion, lancement de business : accédez à nos formations, pratiquez sur des cas concrets et avancez avec un accompagnement clair.