Galerie✨ Premium

Vertical Slider

Carrousel vertical : la piste monte ou descend d'une diapositive à la fois, avec une flèche en haut, une en bas, les touches ↑ ↓ et le glisser vertical.

CSSVerticalY-axis

Mis à jour le

Cet effet fait partie d'Effect.Labs — 840 effets vanilla, une partie gratuite, une partie premium. Galerie comprend 44 effets, dont 6 gratuits. Découvrir la catégorie →

3 exemples d'usage

Créneaux de retrait d'une commande en drive — étape « Retrait » du panier — Vertical Slider exemple 1

① Créneaux de retrait d'une commande en drive — étape « Retrait » du panier

QuandAu moment de choisir l'heure de retrait, le client clique sur la flèche du bas pour passer de 17:00 – 17:30 à 17:30 – 18:00 ; le bouton « Valider » reprend l'horaire affiché.
PourquoiDes horaires se lisent de haut en bas, comme sur un agenda : les faire monter ou descendre suit l'ordre du temps. Un seul créneau visible à la fois tient dans un encart étroit à côté du récapitulatif.
Réglages--vtsl-height:150px, --vtsl-ratio:auto, --vtsl-radius:12px, flèches vertes --vtsl-arrow-bg:#1b7a46 réduites à 32 px par le CSS de la scène, data-slide="créneau". Diapositives en texte seul. Capture : clic sur la flèche du bas toutes les 1,3 s.
Tenues d'une collection d'automne sur mobile — une silhouette par écran — Vertical Slider exemple 2

② Tenues d'une collection d'automne sur mobile — une silhouette par écran

QuandSur le téléphone, la cliente glisse vers le haut et la tenue suivante remplace la précédente, prix et tailles compris ; le compteur passe de « Tenue 1 / 4 » à « Tenue 2 / 4 ».
PourquoiSur mobile, le pouce monte naturellement : le fil vertical est le geste habituel des contenus plein écran, et une silhouette en pied occupe toute la hauteur sans être rognée.
RéglagesPlein écran du téléphone : --vtsl-height:100%, --vtsl-radius:22px 22px 0 0, aucune flèche dans le HTML, photos en <img>, étiquette prix en bas. Capture : la scène envoie au vrai code un pointerdown puis un pointerup 120 px plus haut (le rond blanc montre le geste).
Étapes du montage d'une bibliothèque — notice en ligne d'un fabricant de meubles — Vertical Slider exemple 3

③ Étapes du montage d'une bibliothèque — notice en ligne d'un fabricant de meubles

QuandÀ côté de la liste des pièces, la notice affiche une étape à la fois ; un clic sur la flèche du bas fait monter l'étape suivante et le titre « Étape 2 sur 4 » se met à jour.
PourquoiUne notice se lit de haut en bas : faire arriver l'étape suivante par le bas garde ce sens de lecture, et le dessin reste grand puisqu'une seule étape occupe la carte.
Réglages--vtsl-height:100% de la carte, --vtsl-radius:10px, flèches couleur bois --vtsl-arrow-bg:#a0612f déplacées sur le bord droit, data-slide="étape". Chaque diapositive : dessin en <img>, titre, consigne. Capture : clic sur la flèche du bas toutes les 1,5 s.

Comment ça marche

La piste .vtsl-track est une colonne (flex-direction: column) : les diapositives sont posées les unes sous les autres, chacune haute de 100 % du cadre. Avancer, c'est appliquer translateY(-100 %), -200 %… ; la transition de 0,5 s fait monter l'image suivante par le bas. Reculer la fait redescendre. Après la dernière, le bouton du bas ramène à la première en faisant redescendre toute la piste.

Les commandes sont placées sur l'axe : le bouton .vtsl-prev en haut au centre, .vtsl-next en bas, avec les chevrons tournés de 90° (˄ et ˅). Au clavier, ↑ et ↓ font la même chose quand le focus est dans le carrousel. Au doigt ou à la souris, un glisser vertical de plus de 50 px change d'image : vers le haut pour la suivante, vers le bas pour la précédente.

Pour que ce glisser fonctionne sur mobile, la piste porte touch-action: pan-x : un mouvement vertical commencé sur le carrousel ne fait pas défiler la page. Placez-le donc là où l'utilisateur peut défiler ailleurs (un écran de téléphone dédié, une carte de taille raisonnable), pas sur toute la hauteur d'une page longue.

Les photos se mettent en <img> dans les diapositives (recadrées en object-fit: cover). Chaque .vtsl-carousel fonctionne seul ; le script ne déclare rien sur window et ne se branche pas deux fois sur un cadre marqué data-vtsl-ready.

Accessibilité

  • Rôles : le cadre est un role="region" décrit comme « carrousel » ; chaque diapositive est un groupe « diapositive » nommé « 1 sur 5 ». Pour des créneaux ou des étapes, changez le mot avec data-slide (« créneau », « étape »).
  • Boutons nommés : « Diapositive précédente » en haut, « Diapositive suivante » en bas ; ces libellés se réécrivent sur les boutons (« Créneau plus tôt »…).
  • Clavier : ↑ et ↓ dans le carrousel, Tab et Entrée sur les flèches ; les diapositives hors cadre sont inert et aria-hidden.
  • Annonce : une zone aria-live="polite" cachée lit « diapositive 3 sur 5 » après chaque changement.
  • Mouvement réduit : l'image change sans monter ni descendre sous prefers-reduced-motion: reduce ; flèches, touches et doigt restent actifs.

Compatibilité navigateur

Environ 3,6 Ko de JavaScript. Contrôlé le 08/11/2026 dans Chromium, Firefox et WebKit via Playwright : copie 2 pilotée sans effet sur la copie 1, script en double sans erreur, Entrée sur la flèche puis touche ↓, glisser vertical au doigt à 390 px sans défilement de la page (Chromium) et à la souris, mouvement réduit. Versions planchers lues dans @mdn/browser-compat-data 8.1.8 ; inert est la plus récente des fonctions employées.

Chrome 102+✓ Complet (mesuré)
Firefox 112+✓ Complet (mesuré)
Safari 15.5+✓ Complet (mesuré dans WebKit)
Edge 102+✓ Complet (moteur Chromium)
iOS Safari 15.5+✓ Non vérifié sur appareil réel
Android Chrome 102+✓ Complet (moteur Chromium)

Plus ancien que inert : le carrousel fonctionne, mais le Tab peut entrer dans une diapositive cachée qui contient un lien. Safari 14 ignore aspect-ratio : précisez --vtsl-height. Sans JavaScript, la première diapositive reste en place.

Le code

Structure HTML à coller dans votre page (le CSS + JS sont inclus avec votre achat) :

index.html — structure
<div class="fx-0168-root">
  <div class="vtsl-carousel" role="region" aria-roledescription="carrousel" aria-label="Diaporama" data-slide="diapositive" data-of="sur">
    <div class="vtsl-track">
      <div class="vtsl-slide"><span class="vtsl-caption">Slide 1</span></div>
      <div class="vtsl-slide"><span class="vtsl-caption">Slide 2</span></div>
      <!-- … autres div.vtsl-slide, empilées de haut en bas -->
    </div>
    <button type="button" class="vtsl-arrow vtsl-prev" aria-label="Diapositive précédente"><svg>…</svg></button>
    <button type="button" class="vtsl-arrow vtsl-next" aria-label="Diapositive suivante"><svg>…</svg></button>
  </div>
</div>

Paiement unique, sans abonnement — le code est à toi pour toujours

Personnaliser

Options passées à l'API ou attributs data-* :

Option / propriétéDéfautEffet
Hauteur (CSS — --vtsl-height sur .fx-0168-root) auto (calculée par le format) Pour un composant : 150px ; pour remplir un écran : 100%.
Largeur maximale et format (CSS — --vtsl-width, --vtsl-ratio) 640px · 16 / 10 Un format portrait (9 / 16) convient à des photos de mode ou à un fil de type « stories ».
Durée (CSS — --vtsl-duration) 0.5s Temps de montée ou de descente de la piste.
Flèches (CSS — --vtsl-arrow-bg) blanc à 20 % Une couleur pleine sur un fond clair ; leur position se change via .vtsl-prev (haut) et .vtsl-next (bas).
Arrondi (CSS — --vtsl-radius) 1rem Accepte plusieurs valeurs (22px 22px 0 0).
Zone autour (CSS — --vtsl-stage-bg, --vtsl-stage-padding, --vtsl-stage-min-height) #0a0a0f · 25px 16px · 300px Cadre sombre de la démo, à remettre à transparent, 0, 0.
Mots lus (HTML — data-slide, data-of, aria-label) diapositive · sur · Diaporama « créneau 2 sur 5 », « étape 3 sur 4 »… selon le contenu.

FAQ

Si, sur la surface du carrousel : touch-action: pan-x y réserve le mouvement vertical au carrousel. Hors du cadre, la page défile normalement. Gardez donc une hauteur raisonnable ou un écran dédié ; pour un carrousel qui ne doit pas capter le doigt, retirez cette ligne et le glisser vertical ne marchera plus que pour la souris.
Non. La molette fait défiler la page, comme partout ailleurs : détourner la molette surprend et piège les visiteurs dans le carrousel. Les flèches, ↑ ↓ et le glisser suffisent.
Dots Navigation fait glisser la piste de gauche à droite et se pilote par des pastilles qui mènent directement à n'importe quelle image. Ici, l'axe est vertical et on avance d'un cran à la fois avec deux flèches, haut et bas.