Avant d'évoquer la propriété CSS scroll-behavior, il nous faut parler de CSSOM View Module , qui est en cours d'élaboration (Working Draft).
CSSOM View (ou Vue CSSOM) est un module de la spécification CSS qui définit la manière de manipuler la vue d'un document, notamment le type de comportement à adopter lors du défilement dans une zone d'affichage.
Propriété scroll-behavior
Cette propriété va définir le type de comportement lors du défilement dans une zone d'affichage.
Elle comprend deux valeurs :
→ auto : valeur initiale
→ smooth
A quoi sert concrètement cette propriété ? C'est assez simple. Elle permet d'ajouter une transition plus douce lors du défilement.
Facile à mettre en place, il suffit de renseigner dans l'élément body ou en ciblant l'élément html le code suivant :
html{
scroll-behavior: smooth
}
Et ... c'est tout ! Attention toutefois, l'effet sera appliqué à l'ensemble de la fenêtre d'affichage.
Les navigateurs peuvent décider ne de pas appliquer cette propriété. Par exemple, si la propriété est déclarée dans l'élément body, elle ne se propage pas à la zone d'affichage (viewport). C'est le cas du navigateur Chrome, mais fonctionne sur Firefox.
Exemples d'utilisation :
Ci-dessous, vous trouverez une liste d'ancres. En cliquant sur les liens, vous allez constater que le scroll (défilement) est lisse (smooth).
Chez certaines personnes, l'effet lisse peut être assez perturbant. C'est pourquoi, il est préférable d'avoir recours à la requête média CSS prefers-reduced-motion qui permet de désactiver ou minimiser la quantité de mouvement.
@media (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}
}
Vous avez remarqué une faute, un oubli, un lien mort ? Vous ne comprenez pas un point précis du tutoriel ? Vous pouvez me contacter par mail (contact@guyom-design.com) et je vous aiderai si je le peux.