Skip to content

c-scrollsyncbar.js est une librairie permettant d'afficher/masquer des éléments HTML progressivement en fonction du sens de défilement de la fenêtre.

License

Notifications You must be signed in to change notification settings

ita-design-system/c-scrollsyncbar.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

c-scrollsyncbar.js

GitHub release (latest by date)

c-scrollsyncbar.js est une librairie permettant d'afficher/masquer des éléments HTML progressivement en fonction du sens de défilement de la fenêtre.

GIF exemple usage c-scrollsyncbar.js 1 GIF exemple usage c-scrollsyncbar.js 2

Installation

Il est recommandé de placer les fichiers dans cet ordre avant la balise fin de body.

En local

<body>
    <script src="/path/to/c-scrollsyncbar.js"></script> <!-- obligatoire -->
</body>

Sur CDN

via https://www.jsdelivr.com/

<!-- Version la plus récente -->
https://cdn.jsdelivr.net/gh/ita-design-system/c-scrollsyncbar.js/ui/js/c-scrollsyncbar.js

<!-- Version la plus récente minifiée -->
https://cdn.jsdelivr.net/gh/ita-design-system/c-scrollsyncbar.js/ui/js/c-scrollsyncbar.min.js

<!-- Typologie avec numéro de version -->
https://cdn.jsdelivr.net/gh/ita-design-system/c-scrollsyncbar.js@<TAG_VERSION>/ui/js/c-scrollsyncbar.js

<!-- Typologie numéro de version + minification automatique -->
https://cdn.jsdelivr.net/gh/ita-design-system/c-scrollsyncbar.js@<TAG_VERSION>/ui/js/c-scrollsyncbar.min.js

<!-- Exemple v0.1.0 -->
https://cdn.jsdelivr.net/gh/ita-design-system/c-scrollsyncbar.js@v0.1.0/ui/js/c-scrollsyncbar.js
https://cdn.jsdelivr.net/gh/ita-design-system/c-scrollsyncbar.js@v0.1.0/ui/js/c-scrollsyncbar.min.js
<body>
    <!-- Exemple avec version la plus récente -->
    <script src="https://cdn.jsdelivr.net/gh/ita-design-system/c-scrollsyncbar.js/ui/js/c-scrollsyncbar.min.js"></script>

    <!-- Exemple avec numéro de version -->
    <script src="https://cdn.jsdelivr.net/gh/ita-design-system/c-scrollsyncbar.js@v0.1.0/ui/js/c-scrollsyncbar.min.js"></script>
</body>

Usage

Ajouter c-scrollsyncbar="IDENTIFIANT_UNIQUE_OPTIONNEL" à l'élément. Par défaut l'élément subit une transformation CSS translateY(-|x|%) dans laquelle |x| est un nombre compris entre à et 100.

<!-- Minimal -->
<div c-scrollsyncbar="">
    <!-- Contenu -->
</div>

<!-- Avec id personnalisé -->
<div c-scrollsyncbar="foo">
    <!-- Contenu -->
</div>

Sensibilité scrollSteps

Par défaut, l'initialisation se fait avec paramètre de sensibilité de scrollSteps: 200, qui correspond au nombre de pixels de défilement qu'il faut pour compléter la course de l'élément.

Il est possible de modifier cette sensibilité en invoquant la méthode cScrollSyncBar.update({scrollSteps: <INTEGER>});

  • Plus le paramètre scrollSteps est élevé, plus la course du défilement nécessaire est longue
  • Plus le paramètre scrollSteps est petit, plus la course du défilement nécessaire est courte
// Faible sensibilité, course longue
cScrollSyncBar.update({scrollSteps: 500});

// Par défaut
cScrollSyncBar.update();
// Est équivalent à
cScrollSyncBar.update({scrollSteps: 200});

// Haute sensibilité, course courte
cScrollSyncBar.update({scrollSteps: 50});

Formule personnalisée

c-scrollsyncbar.js fonctionne uniquement avec la propriété CSS transform. Par défaut, la formule de transformation est translateY(-|x|%) dans laquelle |x| est un nombre compris entre à et 100. Il est possible de personnaliser la formule pour chaque élément en l'écrivant dans l'attribut data-transform de l'élément:

Démo

<div c-scrollsyncbar="foo" data-transform="translateY(-|x|%) scale(clamp(0.5, calc(1 - |x| / 100), 1))">
    <!-- contenu -->
</div>

<div c-scrollsyncbar="bar" data-transform="rotateY(clamp(0deg, |x|deg, 90deg)">
    <!-- contenu -->
</div>

Méthode cScrollSyncBar.update()

  • Indispensable pour initialiser l'application, crée les instances des éléments sur lequels appliquer l'effet.
  • Mettre à jour les options
// Initialisation ou mise à jour avec paramètres par défaut
cScrollSyncBar.update();

// Initialisation ou mise à jour avec paramètres personnalisés
cScrollSyncBar.update({scrollSteps: 500});

Méthode cScrollSyncBar.pause()

Interrompre l'effet de la librairie. Maintient les élements dans l'état courant.

cScrollSyncBar.pause();

Méthode cScrollSyncBar.stop()

Stoppe l'effet de la librairie et réinitialise les élements dans leur état d'origine.

cScrollSyncBar.stop();

API

Toutes les instances de cScrollSyncBar sont placées dans cScrollSyncBar.instances[ID_DE_L_INSTANCE]. ID_DE_L_INSTANCE est l'id de l'élément s'il est présent, s'il est absent, cScrollSyncBar applique un id préfixé de cssb_ suivi de l'index de l'instance.

// Élément DOM activé
cScrollSyncBar.instances[ID_DE_L_INSTANCE].el;
// Formule CSS transform en application
cScrollSyncBar.instances[ID_DE_L_INSTANCE].formula;

About

c-scrollsyncbar.js est une librairie permettant d'afficher/masquer des éléments HTML progressivement en fonction du sens de défilement de la fenêtre.

Resources

License

Stars

Watchers

Forks