Comment créer un smooth scroll moins une valeur fixe en pixel
![](https://www.pushaune.com/wp-content/uploads/2017/12/comment-creer-un-smooth-scroll-moins-une-valeur-fixe-en-pixel.jpg)
Si vous avez un header fixe sur votre site internet, l’utilisation de liens ancrés peut masquer votre contenu. On va voir ici comment éviter ça.
[EDIT] Cet article avait été écrit avant l’arrivée de la propriété scroll-behavior. Je le met à jour avec la solution en pure CSS, et laisse la version en javascript pour la postérité.
Langage : Javascript / CSS
Niveau : Intermédiaire / débutant
Problématique des liens ancrés en HTML
Les liens ancrés, c’est très pratique. Seulement, si vous avez un header fixe en haut de votre page, il y a de grandes chances que le début de votre contenu soit masqué par votre navigation.
Pour cela, il faut demander au navigateur de ne pas scroller jusqu’à l’ancre, mais quelques pixels avant pour laisser visible tout votre contenu.
Solution en CSS avec scroll-behavior et scroll-margin-top
La propriété qui va nous permettre d’effectuer en smooth scroll en CSS est : scroll-behavior.
Pour cela, il faut l’appliquer à la balise <html> :
De cette manière, tout scroll appliqué à votre page deviendra smooth :)
Afin d’ajouter notre valeur en pixel pour éviter que le header fixe ne passe sur le contenu, il faut maintenant utiliser scroll-margin-top sur la balise qui possède l’ID de l’ancre.
Prenons pour exemple une liste de <div> qui auraient la class .mon-super-test :
Vous pouvez mettre la valeur que vous désirez.
Solution en javascript (obsolète)
Et tant qu’à faire, on va aussi ajouter un smooth scroll pour rendre la descente (ou la remontée) plus agréable ;)
Tu kiffes ? Alors partage avec tes potes !